Kolejki MSMQ - tranzakcje

Kolejki MSMQ - tranzakcje
KR
  • Rejestracja:ponad 16 lat
  • Ostatnio:około 11 lat
0

Witam

Muszę w projekcie objąć w transakcje wysyłanie wiadomości do kolejki oraz ich pobieranie."Normalne" pobieranie oraz wysyłanie wiadomości nie sprawia mi problemu jednak gdy używam transakcje wiadomości nie chcą się pobrać z kolejki (Nie wiem może trzeba je gdzieś włączyć w windows?). Poniżej zamieściłem najprostszy przykład użycia transakcji, który testowałem. Próbowałem też innych przykładów z użyciem MessageQueueTransaction jednak bez rezultatu. Jeśli orientuje się ktoś w tej tematyce byłbym wdzięczny za informacje na ten temat lub zamieszczenie jakiegoś prostego programu demonstrującego użycie transakcji w MSMQ

Kopiuj
//Wysyłanie do kolejki
mq = new MessageQueue(@".\Private$\Kolejka");
mq.Send("Test1", MessageQueueTransactionType.Single);

//Pobieranie z kolejki

 mq = new MessageQueue(@".\Private$\Kolejka");
 mq.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
 System.Messaging.Message msgTxn = mq.Receive(MessageQueueTransactionType.Single);
 MessageBox.Show(msgTxn.Body.ToString());

Z góry dziękuję za pomoc i pozdrawiam

ST
  • Rejestracja:prawie 15 lat
  • Ostatnio:ponad 11 lat
0

Spróbuj tak:

Kopiuj
MessageQueue myQueue = new MessageQueue(@".\Lalala\Queue");
MessageQueueTransaction myTransaction = new MessageQueueTransaction();
myTransaction.Begin();
myQueue.Send("Nowa wiadomosc.", myTransaction);
myTransaction.Commit();

i

Kopiuj
MessageQueue myQueue = new MessageQueue(@".\Lalala\Queue");
myQueue.Formatter = new XmlMessageFormatter(new Type[] {typeof(String)});
MessageQueueTransaction myTransaction = new MessageQueueTransaction();

try
{
	myTransaction.Begin();
	Message myMessage = myQueue.Receive(myTransaction); 
	Console.WriteLine((String)myMessage.Body);
	myTransaction.Commit();
}
catch (MessageQueueException)
{
	myTransaction.Abort();
}

Pozdro & poćwicz!
KR
  • Rejestracja:ponad 16 lat
  • Ostatnio:około 11 lat
0

Dzięki za przejrzysty przykład teraz wszystko działa problem tkwił też w tym że moja kolejka nie była transakcyjną (przy tworzeniu kolejki 2 argument konstruktora musi być równy true)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.