8.3.1 名前によるメッセージのブロードキャスト
tpbroadcast(3c)を使用すると、アプリケーションの登録されたクライアントにメッセージが送信されます。これは、サービスまたは別のクライアントから呼び出すことができます。登録されたクライアントとは、tpinit()を呼び出したが、まだtpterm()を呼び出してはいないクライアントのことです。
tpbroadcast()
関数の呼出しには、次のシグネチャを使用します:
int
tpbroadcast(char *lmid, char *usrname, char *cltname, char *data, long len, long
flags)
次の表は、tpbroadcast()
関数の引数を示しています。
表8-3 tpbroadcast()関数の引数
引数 | 説明 |
---|---|
lmid
|
クライアントの論理マシン識別子を指すポインタ。NULL値をワイルドカードとして使用できるので、複数のクライアントにメッセージを送信できます。 |
usrname
|
クライアント・プロセスのユーザー名が存在する場合、そのユーザー名を指すポインタ。NULL値をワイルドカードとして使用できるので、複数のクライアントにメッセージを送信できます。 |
cltname
|
クライアント・プロセスのクライアント名が存在する場合、そのクライアント名を指すポインタ。NULL値をワイルドカードとして使用できるので、複数のクライアントにメッセージを送信できます。 |
data
|
メッセージの内容を指すポインタ。 |
len
|
メッセージ・バッファのサイズ。data が自己記述型のバッファ・タイプ(FML など)を指す場合、len に0を設定できます。
|
flags
|
フラグのオプション。使用できるフラグについては、『Oracle Tuxedo ATMI 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
親トピック: 非請求メッセージの送信