イベントチャネルがグローバルトランザクションシステムのリソースプログラムとして動作することにより、イベントデータの送信/受信をグローバルトランザクション化させることができます。グローバルトランザクションは、データベース連携サービスの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言語のメソッド名で説明しています。