BEA Logo BEA Tuxedo Release 8.0

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

 

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

 


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

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

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


 

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

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

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

int
tpbroadcast(char *lmid, char *usrname, char *cltname, char *data, long len, long flags)

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

tpbroadcast( ) 関数の引数

引数

説明

lmid

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

usrname

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

cltname

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

data

メッセージの内容を指すポインタ。

len

メッセージ・バッファのサイズ。data が自己記述型のバッファ・タイプ (FML など) を指す場合、len に 0 を設定できます。

flags

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

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

tpbroadcast( ) の使用

char *strbuf;

if ((strbuf = tpalloc("STRING", NULL, 0)) == NULL) {
error routine
}

(void) strcpy(strbuf, "hello, world");

if (tpbroadcast(NULL, NULL, NULL, strbuf, 0, TPSIGRSTRT) == -1)
error routine

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

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

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

int
tpnotify(CLIENTID *clientid, char *data, long len, long flags)

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

tpnotify( ) 関数の引数

引数

説明

clientid

CLIENTID 構造体を指すポインタ。この構造体は、このサービスへの要求を持つ TPSVCINFO 構造体から取得されたものです。

data

メッセージの内容を指すポインタ。

len

メッセージ・バッファのサイズ。data が自己記述型のバッファ・タイプ (FML など) を指す場合、len に 0 を設定できます。

flags

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

 

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