BEA Logo BEA Tuxedo Release 8.0

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

 

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

 


任意通知型メッセージの送信

BEA Tuxedo システムでは、要求/応答型呼び出しまたは会話型通信の処理を妨げずに、クライアント・プロセスに任意通知型メッセージを送信できます。

任意通知型メッセージは、名前、または以前に処理されたメッセージと共に受信した識別子を使用して、クライアント・プロセスに送信できます。名前による送信には TPBROADCAST(3cbl)、識別子による送信には TPNOTIFY(3cbl) を使用します。TPBROADCAST で送信されるメッセージの発信元は、サービスまたは別のクライアントです。TPNOTIFY で送信されるメッセージの発信元は、サービスだけです。


 

名前によるメッセージのブロードキャスト

TPBROADCAST(3cbl) ルーチンを使用すると、アプリケーションの登録されたクライアントにメッセージが送信されます。tpbroadcast() は、サービスまたは別のクライアントから呼び出すことができます。登録されたクライアントとは、TPINITIALIZE を呼び出したが、まだ TPTERM を呼び出してはいないクライアントのことです。

TPBROADCAST ルーチンの呼び出しには、次の文法を使用します。

01 TPBCTDEF-REC.
COPY TPBCTDEF.
01 TPTYPE-REC.
COPY TPTYPE.
01 DATA-REC.
COPY User Data.
01 TPSTATUS-REC.
COPY TPSTATUS.
CALL "TPBROADCAST" USING TPBCTDEF-REC TPTYPE-REC DATA-REC TPSTATUS-REC.

次の表は、TPBCTDEF-REC データ構造体のメンバを示しています。

TPBCTDEF-REC データ構造体のメンバ

メンバ

説明

LMID

クライアントの論理マシン識別子を指すポインタ。SPACES 値をワイルドカードとして使用できるので、複数のクライアントにメッセージを送信できます。

USRNAME

クライアント・プロセスのユーザ名が存在する場合、そのユーザ名。SPACES 値をワイルドカードとして使用できるので、複数のクライアントにメッセージを送信できます。

CLTNAME

クライアント・プロセスのクライアント名が存在する場合、そのクライアント名。NULL 値をワイルドカードとして使用できるので、複数のクライアントにメッセージを送信できます。

設定値 (TPBLOCK-FLAG など)

TPBROADCAST コマンドの設定値。使用できる設定値については、『BEA Tuxedo COBOL リファレンス』の TPBROADCAST(3cbl) を参照してください。

TPTYPE-REC レコードについては、「サービスの定義」を参照してください。

次のコード例は、すべてのクライアントを送信先として TPBROADCAST を呼び出す方法を示しています。送信メッセージは、STRING 型レコード内にあります。

TPBROADCAST の使用

    . . .
**************************************************
* ブロードキャストにレコードを用意します。
**************************************************
MOVE "HELLO, WORLD" TO DATA-REC.
MOVE 11 TO LEN.
MOVE "STRING" TO REC-TYPE.
*
SET TPNOBLOCK TO TRUE.
SET TPNOTIME TO TRUE .
SET TPSIGRSTRT TO TRUE .
*
MOVE SPACES TO LMID.
MOVE SPACES TO USRNAME.
MOVE SPACES TO CLTNAME.
CALL "TPBROADCAST" USING TPBCTDEF-REC
TPTYPE-REC
DATA-REC
TPSTATUS-REC.
IF NOT TPOK
error processing

識別子によるメッセージのブロードキャスト

TPNOTIFY(3cbl) ルーチンを使用すると、以前に処理されたメッセージと共に受信した識別子を使用してメッセージがブロードキャストされます。tpnotify() 関数は、サービスからのみ呼び出すことができます。

TPNOTIFY ルーチンの呼び出しには、次の文法を使用します。

01 TPSVCDEF-REC.
COPY TPSVCDEF.
01 TPTYPE-REC.
COPY TPTYPE.
01 DATA-REC.
COPY User Data.
01 TPSTATUS-REC.
COPY TPSTATUS.
CALL "TPNOTIFY" USING TPSVCDEF-REC TPTYPE-REC DATA-REC TPSTATUS-REC.

TPSVCDEF-REC データ構造体については、「グローバル・トランザクションのコーディング」 を参照してください。TPTYPE-REC レコードについては、「サービスの定義」 を参照してください。

 

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