現在のエミッター設定のオーバーライド

エミッター・ファクトリー・プロファイル設定をイベント・コンシューマーで変更することができます。

このタスクを実行する理由と時期

イベントを送信する際に、エミッターに対して現在構成されている現行のトランザクション・モード、同期モード、または両方をオーバーライドするオプションを指定できます。これらの設定は、最初はエミッター・ファクトリー・プロファイル内の管理者によって定義されますが、後にイベント・コンシューマーによって変更することが可能です。

エミッターは、すべての同期およびトランザクション・モードを サポートしない場合があります。 使用可能なモードは、以下の制限に基づきます。 サポートされていないモードを使用しようとすると、エミッターは、TransactionModeNotSupportedException または SynchronizationModeNotSupportedException 例外をスローします。

このタスクのステップ

エミッター設定をオーバーライドするには、sendEvent(CommonBaseEvent, int, int) メソッドを使用します。
String eventId = emitter.sendEvent(event,
                                   synchronizationMode,
                                   transactionMode);
パラメーターは、以下のとおりです。
event
送信するイベント・オブジェクト (CommonBaseEvent のインスタンス)
synchronizationMode
インターフェース SynchronizationMode で定義された整数定数。 これは、以下の定数のいずれかです。
  • SynchronizationMode.ASYNCHRONOUS (イベントを非同期に送信します。)
  • SynchronizationMode.SYNCHRONOUS (イベントを同時に送信します。)
  • SynchronizationMode.DEFAULT (現在のエミッター設定を使用します。)
transactionMode
インターフェース TransactionMode で定義された整数定数。
  • TransactionMode.NEW (新規トランザクションのイベントを送信します。)
  • TransactionMode.SAME (現在のトランザクションのイベントを送信します。)
  • TransactionMode.DEFAULT (現在のエミッター設定を使用します。)

結果

イベントは、指定されたオプションで送信されます。 これらのオプションは、送信される単一イベントにのみ適用されます。エミッター設定は変更されず、後続のイベント・サブミットは影響を受けません。

戻り値 eventId は、イベントのグローバル固有 ID (CommonBaseEvent の globalInstanceId フィールドの値) です。イベントをサブミットするときにイベントに globalInstanceId がない場合、エミッターによって自動的に割り当てられます。

注: イベントがエミッターにサブミットされても、イベントがイベント・サーバーに送信されたことを保証するものではありません。フィルター設定によってイベントが廃棄される可能性があるためです。 sendEvent() の呼び出しが正常に終了するのは、イベントがエミッターで正常に処理された場合のみです。
以下の例では、新規トランザクションでイベントを送信するためにエミッター設定をオーバーライドしますが、同期モードはオーバーライドしません。
String eventId = sendEvent(event,
                           SynchronizationMode.DEFAULT,
                           TransactionMode.NEW);

ご利用条件 |


(c) Copyright IBM Corporation 2005, 2006.
本製品では Eclipse テクノロジーが採用されています。(http://www.eclipse.org)