Initialisieren Sie QAnywhere.
Dieser Schritt ist derselbe wie beim nicht-transaktionalen Messaging.
#include <qa.hpp> QAManagerFactory * factory; factory = QAnywhereFactory_init(); if( factory == NULL ) { // Fatal error. } |
Erstellen Sie einen Transaktionsmanager.
QATransactionalManager * mgr; mgr = factory->createQATransactionalManager( NULL ); if( mgr == NULL ) { // Fatal error. } |
Wie bei nicht-transaktionalen Managern können Sie eine Eigenschaftsdatei erstellen, um das QAnywhere-Verhalten anzupassen. In diesem Beispiel wird keine Eigenschaftsdatei verwendet.
Initialisieren Sie den Manager.
if( !mgr->open() ) { // Display message using mgr->getLastErrorMsg(). } |
Sie sind nun bereit, Nachrichten zu versenden. Die folgende Prozedur versendet zwei Nachrichten in einer einzigen Transaktion.
Initialisieren Sie Nachrichtenobjekte.
QATextMessage * msg_1; QATextMessage * msg_2; |
Versenden Sie die Nachrichten.
Der folgende Code versendet zwei Nachrichten in einer einzigen Transaktion:
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 ); } |
Die commit-Methode schreibt die aktuelle Transaktion fest und beginnt eine neue Transaktion. Diese Methode schreibt alle Aufrufe von putMessage()- und getMessage()-Methoden fest.
Die erste Transaktion beginnt mit dem Aufruf der open-Methode.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |