BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   C 言語を使用した BEA Tuxedo アプリケーションのプログラミング   |   先頭へ   |   前へ   |   次へ   |   目次

 


イベントの概要

イベント・ベースの通信では、特定の状況 (イベント) が発生すると、BEA Tuxedo システムのプロセスに通知されます。

BEA Tuxedo システムには、次の 2 種類のイベント・ベースの通信があります。

任意通知型イベント

任意通知型イベントは、メッセージを待たないクライアント・プログラム、またはメッセージを要求しないクライアント・プログラムとの通信に使用されるメッセージです。

ブローカ・イベント

ブローカ・イベントを使用すると、メッセージの受信と配信を行う「無名」ブローカを介して、クライアントとサーバが透過的に通信できるようになります。このブローカを使用した通信は、BEA Tuxedo システムの基本要素であるクライアント/サーバ通信パラダイムの 1 つです。

イベント・ブローカは、イベント・ポスト・メッセージを受信してフィルタ処理し、それらのメッセージをサブスクライバに配布する BEA Tuxedo のサブシステムです。ポスト元とは、特定のイベントが発生したときにそれをイベント・ブローカに報告 (ポスト) する BEA Tuxedo システムのプロセスです。サブスクライバとは、特定のイベントがポストされたときに常に通知する必要がある BEA Tuxedo システムのプロセスです。

BEA Tuxedo システムでは、サービスの要求側と提供側の数の比率が一定である必要はなく、任意の数のポスト元が任意の数のサブスクライバに対してメッセージ・バッファをポストできます。ポスト元は単にイベントをポストするだけで、情報を受信するプロセスや、情報の処理方法については関知しません。サブスクライバには指定されたイベントが通知されますが、その情報のポスト元は通知されません。このように、イベント・ブローカでは位置透過性が実現されます。

通常、イベント・ブローカ・アプリケーションは、例外イベントを処理します。アプリケーションの設計者は、アプリケーション内でどのイベントを例外イベントとして定義して監視する必要があるのかを決定しなければなりません。たとえば、銀行業務アプリケーションでは、高額な引き出しがあったときにイベントがポストされるように設定し、すべての引き出しに対してイベントがポストされる必要はありません。また、すべてのユーザがそのイベントをサブスクライブする必要はありません。支店長だけに通知すれば十分です。

通知処理

イベントがポストされると、イベント・ブローカはイベントをサブスクライブしているクライアントまたはサーバに対して、1 つ以上の通知処理を行います。次の表は、イベント・ブローカが行う通知処理の種類を示しています。

イベント・ブローカの通知処理

通知処理

説明

任意通知型通知メッセージ

クライアントは、tpnotify() で送信された場合と同じように、クライアントの任意通知型メッセージ処理ルーチンでイベント通知メッセージを受信します。

サービス呼び出し

サーバは、tpacall() によって送信された場合と同じように、サービス・ルーチンに対する入力としてイベント通知メッセージを受け取ります。

信頼性の高いキュー

イベント通知メッセージは、tpenqueue(3c) 関数を使用して、BEA Tuxedo システムの信頼性の高いキューに格納されます。イベント通知バッファは、バッファ内容が要求されるまで格納されます。BEA Tuxedo システムのクライアントまたはサーバ・プロセスで tpdequeue(3c) 関数を呼び出して、この通知バッファを取り出すことができます。または、TMQFORWARD(5) を設定して、通知バッファを取り出す BEA Tuxedo システムのサービス・ルーチンを自動的にディスパッチすることもできます。

/Q の詳細については、『BEA Tuxedo/Q コンポーネント』を参照してください。

アプリケーション管理者は、BEA Tuxedo の管理用 API を使用して、次の通知処理を行う EVENT_MIB(5) エントリを作成できます。

注記 EVENT_MIB(5) エントリを作成できるのは、BEA Tuxedo アプリケーション管理者だけです。

EVENT_MIB(5) の詳細については、『ファイル形式、データ記述方法、MIB、およびシステム・プロセスのリファレンス』を参照してください。

イベント・ブローカ・サーバ

TMUSREVT は BEA Tuxedo システムで提供されるサーバで、ユーザ定義のイベントに対するイベント・ブローカとして動作します。TMUSREVT はイベント・レポート用のメッセージ・バッファを処理し、それらのバッファをフィルタ処理して配信します。イベントのブローカ処理を行うには、BEA Tuxedo アプリケーション管理者がこれらのサーバを 1 つ以上起動する必要があります。

TMSYSEVT は BEA Tuxedo システムで提供されるサーバで、システム定義のイベントに対するイベント・ブローカとして動作します。TMSYSEVTTMUSREVT は似ています。ただし、別個のサーバが提供されているので、アプリケーション管理者はこの 2 種類のイベント通知に対して異なる処理方法を取り入れることができます。詳細については、『BEA Tuxedo アプリケーションの設定』を参照してください。

システム定義のイベント

BEA Tuxedo システムでは、システムの警告と障害に関連する定義済みの特定のイベントが検出されてポストされます。これらの処理はイベント・ブローカによって行われます。たとえば、システム定義のイベントには、設定の変更、状態の変更、接続の障害、マシンの分断などがあります。イベント・ブローカによって検出されるシステム定義のイベントの全リストについては、『ファイル形式、データ記述方法、MIB、およびシステム・プロセスのリファレンス』の EVENTS(5) を参照してください。

システム定義のイベントは、BEA Tuxedo システムで定義されているので、ポストする必要はありません。システム定義のイベント名は、アプリケーション定義のイベント名とは異なり、必ずドット (".") で始まります。アプリケーション定義のイベント名をドットで始めることはできません。

クライアントとサーバは、システム定義のイベントをサブスクライブできます。ただし、システム定義のイベントは、アプリケーション内のすべてのクライアントが使用するのではなく、主にアプリケーション管理者が使用します。

イベント・ブローカをアプリケーションに組み込む場合、イベント・ブローカが多数のサブスクライバに大量の配信を行うためのシステムではないことを考慮してください。発生するすべての動作に対してイベントをポストしないでください。また、すべてのクライアントとサーバがイベントをサブスクライブする必要はありません。イベント・ブローカに負荷がかかると、システムのパフォーマンスに影響し、通知が行われなくなる場合があります。負荷を最小限にするには、『Tuxedo システムのインストール』で説明するように、アプリケーション管理者がオペレーティング・システムの IPC 資源を慎重に調整する必要があります。

イベント・ブローカ・プログラミング・インターフェイス

イベント・ブローカ・プログラミング・インターフェイスは、ワークステーションを含むすべての BEA Tuxedo システムのサーバ・プロセスおよびクライアント・プロセスに対して C 言語および COBOL 言語で使用できます。

プログラマは、次の処理をコーディングします。

  1. クライアントまたはサーバは、アプリケーション定義のイベント名にバッファを ポストします。

  2. ポストされたバッファは、そのイベントをサブスクライブしている任意の数のプ ロセスに転送されます。

サブスクライバへの通知方法にはいろいろな方法 (「通知処理」を参照) があり、イベントはフィルタ処理されます。通知処理とフィルタ処理は、プログラミング・インターフェイスと BEA Tuxedo システムの管理用 API を使用して設定します。

 

先頭へ戻る 前のトピックへ 次のトピックへ