BEA Logo BEA Tuxedo Release 8.0

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

 

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

 


イベントのサブスクライブ

tpsubscribe(3c) 関数を使用すると、BEA Tuxedo システムのクライアントまたはサーバがイベントをサブスクライブできるようになります。

サブスクライバは、任意通知型通知メッセージ、サービス呼び出し、高い信頼性のキュー、またはアプリケーション管理者が設定する別の通知方法によって、通知を受け取ります。別の通知方法の設定については、『BEA Tuxedo アプリケーションの設定』を参照してください。

tpsubscribe() 関数の呼び出しには、次の文法を使用します。

long handle
tpsubscribe (char *eventexpr, char *filter, TPEVCTL *ctl, long flags)

次の表は、tpsubscribe() 関数の引数を示しています。

tpsubscribe( ) 関数の引数

引数

説明

eventexpr

プロセスがサブスクライブする 1 つ以上のイベントを指すポインタ。正規表現を含み、NULL 文字で終了する最大 255 文字の文字列を指定します。正規表現は、tpsubscribe(3c) で指定された形式です (『BEA Tuxedo C リファレンス』を参照)。たとえば、次のように eventexpr を設定します。

filter

ブール型のフィルタ規則を含む文字列を指すポインタ。イベント・ブローカがイベントをポストする前に、この規則を評価する必要があります。ポストするイベントを受け取ると、イベント・ブローカはそのイベントのデータにフィルタ規則 (存在する場合) を適用します。データが正しく評価された場合、イベント・ブローカは指定された通知方法を呼び出します。正しく評価されなかった場合、イベント・ブローカは指定された通知方法を無視します。呼び出し元は、異なるフィルタ・ルールを利用して同じイベントを何度でもサブスクライブすることができます。

イベント・フィルタ機能を使用すると、サブスクライバは通知されるイベントを限定できます。たとえば、100 万円を超える額の引き出しがあった場合に、イベントがポストされるとします。その場合、サブスクライバが 100 万円より高い額 (たとえば 500 万円) の通知だけを必要とすることがあります。または、特定の顧客による高額の引き出しの通知だけを必要とする場合があります。

フィルタ・ルールは、それが適用される型付きバッファに固有なものです。フィルタ規則の詳細については、『BEA Tuxedo C リファレンス』の tpsubscribe(3c) を参照してください。

ctl

サブスクライバへのイベント通知の方法を制御するフラグを指すポインタ。次の値を指定できます。

flags

フラグのオプション。使用できるフラグについては、『BEA Tuxedo C リファレンス』の tpsubscribe(3c) を参照してください。

システム定義のイベントとアプリケーション定義のイベントは、tpsubscribe() 関数を使用してサブスクライブできます。

サブスクリプション、および MIB を更新するために BEA Tuxedo システムのサーバ・プロセスで実行されるサービス・ルーチンは、信頼されたコードと見なされます。

任意通知型メッセージを使用した通知

サブスクライバが BEA Tuxedo システムのクライアント・プロセスであり、ctl に NULL が設定されている場合、クライアントがサブスクライブしているイベントがポストされると、イベント・ブローカは次のようにサブスクライバに任意通知型メッセージを送ります。eventexpr に対して正常に評価されたイベント名がポストされると、イベント・ブローカは対応付けられたフィルタ規則でポストされたデータを確認します。データがフィルタ規則で正しく評価された場合 (またはイベントにフィルタ規則がない場合)、サブスクライバはイベントと共にポストされたデータと任意通知型メッセージを受信します。

任意通知型メッセージを受け取るには、クライアントは tpsetunsol() 関数を使用して、任意通知型メッセージ処理ルーチンを登録しておく必要があります。

クライアントが任意通知型メッセージによってイベント通知を受け取った場合、終了する前にイベント・ブローカのアクティブなサブスクリプションのリストからそのサブスクリプションを削除する必要があります。サブスクリプションの削除には tpunsubscribe() 関数を使用します。

サービス呼び出しまたは信頼できるキューを使用した通知

サービス呼び出しを使用したイベント通知では、アプリケーションの特定の条件に対して自動的に応答するようにプログラミングできます。高い信頼性のキューを使用したイベント通知では、イベント・データが損失しないことが保証されます。また、サブスクライバがいつでもイベント・データを取り出せるという柔軟性があります。

サブスクライバ (クライアント・プロセスまたはサーバ・プロセス) がイベント通知をサービス・ルーチンまたは安定記憶領域のキューに送信する場合、tpsubscribe()ctl パラメータが有効な TPEVCTL 構造体を指していることが必要です。

TPEVCTL 構造体には、次の情報が格納されています。

long   flags;
char name1[32];
char name2[32];
TPQCTL qctl;

次の表は、TPEVCTL 型バッファのデータ構造を示しています。

TPEVCTL 型バッファの形式

フィールド

説明

flags

フラグのオプション。フラグの詳細については、『BEA Tuxedo C リファレンス』の tpsubscribe(3c) を参照してください。

name1

32 文字以下の文字列。

name2

32 文字以下の文字列。

qctl

TPQCTL 構造体。詳細については、『BEA Tuxedo C リファレンス』の tpsubscribe(3c) を参照してください。

 

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