Kolejki MSMQ - tranzakcje

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

//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

0

Spróbuj tak:

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

i

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();
}
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)

1 użytkowników online, w tym zalogowanych: 0, gości: 1