イベント・ソースは、Java 2 Platform, Standard Edition (J2SE) または Java 2 Platform, Enterprise Edition (J2EE) のいずれかを使用して、Java プログラミング言語で実装されます。イベント・ソースは、コモン・ベース・イベント・モデルに準拠する有効なイベントを送信する必要があります。各イベントは Java オブジェクトとして表されます。
エミッターおよびエミッター・ファクトリー
イベント・ソースは、イベント・サーバーと直接対話することはありません。その代わりに、エミッターと呼ばれるオブジェクト (com.ibm.events.emitter.Emitter インターフェースのインプリメンテーション) と対話します。エミッターは、イベントを送信するためのメソッドを提供するローカル・オブジェクトです。
一般に、エミッターは、イベント伝送の詳細を扱います。したがって、イベント・ソースの開発者は、イベント・サーバーの場所、フィルターの設定値、または基本の伝送メカニズムを気にする必要はありません。
このような詳細は、管理者によって構成され、Java Naming and Directory Interface (JNDI) ネームスペースでバインドされているオブジェクトである
エミッター・ファクトリー によって管理されます。エミッター・ファクトリーは、com.ibm.events.emitter.EmitterFactory のインスタンスで、エミッター・オブジェクトを作成するのに使用されます。エミッター・ファクトリーは、それが作成するエミッターの振る舞いも定義します。エミッターには、以下の設定が含まれます。
- 優先されるトランザクション・モード。この設定は、エミッターが各イベントを、新規トランザクションで送信するか、現行のトランザクション内で送信するかを指定します。イベント・ソースは、特定のエミッターまたはイベント送信のこの設定を変更できますが、デフォルト値はプロファイルが指定しています。
(この設定は J2EE コンテナーでのみ有効です。J2SE プラットフォームは、トランザクション制御を提供しません。)
- 優先される同期モード。この設定は、イベントを同期伝送または非同期伝送のどちらを使用して送信するかを指定します。同期伝送 の場合、sendEvent() メソッドは、イベントが処理されるまで呼び出し元に制御を戻しません。非同期伝送 の場合、このメソッドは、イベントが送信された直後に戻るので、呼び出し元は、イベント処理に関するそれ以降の情報を持ちません。イベント・ソースは、エミッターまたはイベント送信のこの設定を変更できますが、デフォルト値はプロファイルで指定されます。
- 使用する伝送プロファイル。伝送プロファイルは、イベント・サーバーにイベントを送信するための特定の伝送メカニズムを定義する構成オブジェクトです。エミッター・ファクトリー・プロファイルは、同期伝送用および非同期伝送用の 2 つの伝送プロファイルを指定できます。
イベント・ソースは、エミッターが使用する伝送プロファイルを変更できません。
- エミッターに使用するフィルター構成。フィルター構成は、エミッターに送られたイベントをフィルタリングするのに使用するフィルター・プラグインを定義します。
共通イベント・インフラストラクチャーには、デフォルトのフィルター・プラグインが含まれていますが、別のフィルター・エンジンを使用する場合は、独自のフィルター・プラグインを実装することもできます。
管理者は、複数のエミッター・ファクトリー・プロファイルを作成して、それぞれに、異なるエミッター構成を定義できます。イベント・ソースは、既存のエミッター・ファクトリー・プロファイルに関連付けられているエミッター・ファクトリーを使用して、エミッターを取得します。したがって、特定のエミッター・ファクトリーで作成されたすべてのエミッターは、同じデフォルトの振る舞いを持ちます。詳しくは、「エミッターの取得」を参照してください。
注: イベント・ソースが Java 2 セキュリティーを使用可能にして実行し、独自のグローバル一意識別子 (GUID) を生成する場合は、ポリシー・ファイルを変更して、正しい処理を使用可能にする必要があります。以下の項目を追加してください。
permission java.io.FilePermission "${java.io.tmpdir}${/}guid.lock",
"read, write, delete";
permission java.net.SocketPermission "*", "resolve";