イベントチャネルがグローバルトランザクションシステムのリソースプログラムとして動作することにより、イベントデータの送信/受信をグローバルトランザクション化することができます。グローバルトランザクションは、データベース連携サービスのCurrentインタフェースのCosTransactions_Current_begin()で開始し、CosTransactions_Current_commit()/CosTransactions_Current_rollback()で完了します。
コンシューマの場合、トランザクション内に以下のメソッドを記述します。
CosEventComm_PullSupplier_pull()
CosEventComm_PullSupplier_try_pull()
CosNotifyComm_StructuredPullSupplier_pull_structured_event()
CosNotifyComm_StructuredPullSupplier_try_pull_structured_event()
サプライヤの場合、トランザクション内に以下のメソッドを記述します。
CosEventComm_PushConsumer_push()
CosNotifyComm_StructuredPushConsumer_push_structured_event()
CosTransactions_Current_begin()発行後、CosTransactions_Current_commit()/CosTransactions_Current_rollback()を発行しない場合は、トランザクションタイムアウト時間が経過した時点で、グローバルトランザクションにより自動的にrollbackされます。
なお、1つのグローバルトランザクション内に、複数のイベントチャネルへのアクセスを記述することはできません。
また、アプリケーション開発時は、グローバルトランザクションのインクルードおよびライブラリが必要となります。詳細については、「アプリケーション作成ガイド(データベース連携サービス編)」の「アプリケーション開発(C言語)」/「アプリケーション開発(C++言語)」/「アプリケーション開発(Java言語)」/「アプリケーション開発(COBOL)」-「クライアント開発環境の設定」を参照してください。
注意
上記は、C言語のメソッド名で説明しています。