QAnywhere を初期化します。
この手順は、非トランザクション志向メッセージングの場合と同じです。
#include <qa.hpp> QAManagerFactory * factory; factory = QAnywhereFactory_init(); if( factory == NULL ) { // Fatal error. } |
トランザクション志向マネージャを作成します。
QATransactionalManager * mgr; mgr = factory->createQATransactionalManager( NULL ); if( mgr == NULL ) { // Fatal error. } |
非トランザクション志向マネージャの場合と同様に、プロパティ・ファイルを指定することで QAnywhere の動作をカスタマイズできます。この例では、プロパティ・ファイルは使用していません。
マネージャを初期化します。
if( !mgr->open() ) { // Display message using mgr->getLastErrorMsg(). } |
これで、メッセージを送信する準備ができました。次に、1 つのトランザクション内で 2 つのメッセージを送信する手順を示します。
メッセージ・オブジェクトを初期化します。
QATextMessage * msg_1; QATextMessage * msg_2; |
メッセージを送信します。
次のコードでは、1 つのトランザクション内で 2 つのメッセージを送信しています。
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 ); } |
commit メソッドは、現在のトランザクションをコミットして、新しいトランザクションを開始します。このメソッドは、putMessage() メソッドと getMessage() メソッドのすべての呼び出しをコミットします。
最初のトランザクションは、open メソッドの呼び出しで開始されます。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |