To create a transactional manager
Initialize QAnywhere.
This step is the same as in non-transactional messaging.
#include <qa.hpp> QAManagerFactory * factory; factory = QAnywhereFactory_init(); if( factory == NULL ) { // Fatal error. } |
Create a transactional manager.
QATransactionalManager * mgr; mgr = factory->createQATransactionalManager( NULL ); if( mgr == NULL ) { // Fatal error. } |
As with non-transactional managers, you can specify a properties file to customize QAnywhere behavior. In this example, no properties file is used.
Initialize the manager.
if( !mgr->open() ) { // Display message using mgr->getLastErrorMsg(). } |
You are now ready to send messages. The following procedure sends two messages in a single transaction.
To send multiple messages in a single transaction
Initialize message objects.
QATextMessage * msg_1; QATextMessage * msg_2; |
Send the messages.
The following code sends two messages in a single transaction:
msg_1 = mgr->createTextMessage(); if( msg_1 != NULL ) { msg_2 = mgr->createTextMessage(); if( msg_2 != NULL ) { if( !mgr->putMessage( "jms_1\\queue_name", msg_1 ) ) { // Display message using mgr->getLastErrorMsg(). } else { if( !mgr->putMessage( "jms_1\\queue_name", msg_2 ) ) { // Display message using mgr->getLastErrorMsg(). } else { mgr->commit(); } } mgr->deleteMessage( msg_2 ); } mgr->deleteMessage( msg_1 ); } |
The commit method commits the current transaction and begins a new transaction. This method commits all putMessage() method and getMessage() method invocations.
The first transaction begins with the call to open method.
Send feedback about this page via email or DocCommentXchange | Copyright © 2008, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.0 |