i.internal message
An internal transactional message si the simplest type of transaction. however, internal transactional message can not perform transactions with non-message queuing resources such as databases. if we wanna interact with a databas in a DB, we must use external transactional messages. sending an internal transactional message is just like this:
MessageQueueTransaction transaction=new MessageQueueTransction.
MessageQueue mq=new MessageQueue(@".\transactonMQ",true);
try
{
transaction.Begin();
mq.send("messae body1","label1",transaction);
mq.send("message body2","label2",transaction);
transaction.Commit();
//transaction principle: All or Nothing!
}
catch(Exception ex)
{
transaction.Abort();
}