|
|
サービスの宣言と宣言の取り消し
サーバは起動時に、コンフィギュレーション・ファイルの CLOPT パラメータに指定された値に基づいて、提供するサービスを宣言します。
注記 サーバが宣言するサービスは、buildserver コマンドの実行時に最初に定義されます。-s オプションを使用すると、複数のサービスをカンマ区切りで指定できます。また、宣言されたサービスと異なる名前の関数を呼び出して、サービス要求を処理できます。詳細については、『BEA Tuxedo コマンド・リファレンス』の buildserver(1)を参照してください。
デフォルトでは、サーバに組み込まれたすべてのサービスをそのサーバが宣言します。詳細については、『ファイル形式、データ記述方法、MIB、およびシステム・プロセスのリファレンス』の UBBCONFIG(5) または servopts(5) リファレンス・ページを参照してください。
宣言されたサービスでは掲示板のサービス・テーブル・エントリが使用されるので、リソースが消費される場合があります。そのため、サーバの起動時には、提供されるサービスのサブセットだけを利用できるようにします。アプリケーションで利用できるサービスを制限するには、コンフィギュレーション・ファイルの SERVERS セクションで該当するエントリに CLOPT パラメータを定義し、-s オプションの後に必要なサービスをカンマで区切って指定します。また、-s オプションを使用すると、サービス要求を処理するために呼び出される宣言済みのサービスと異なる名前の関数を呼び出すこともできます。詳細については、『ファイル形式、データ記述方法、MIB、およびシステム・プロセスのリファレンス』の servopts(5) リファレンス・ページを参照してください。
BEA Tuxedo アプリケーションの管理者は、tmadmin(1) の advertise および unadvertise コマンドを使用して、サーバで提供されるサービスを管理できます。tpadvertise() および tpunadvertise() 関数を使用すると、要求/応答型サーバまたは会話型サーバでのサービスの宣言を動的に制御できます。ただし、宣言されるサービス、または宣言を取り消すサービスは、要求を行うサービスと同じサーバ内になければなりません。
サービスの宣言
tpadvertise(3c) 関数の呼び出しには、次の文法を使用します。
int
tpadvertise(char *svcname, void *func)
次の表は、tpadvertise() 関数の引数を示しています。
tpadvertise( ) 関数の引数
サービス宣言の取り消し tpunadvertise(3c) 関数は、掲示板のサービス・テーブルからサービス名を削除します。サービス名が削除されたサービスは、宣言されていない状態になります。 tpunadvertise() 関数の呼び出しには、次の文法を使用します。 tpunadvertise() 関数の引数は、次の表で説明する svcname だけです。 tpunadvertise( ) 関数の引数
tpunadvertise(char *svcname)
char *svcname;
引数 |
説明 |
---|---|
svcname |
宣言するサービス名を指すポインタ。サービス名は 15 文字以下の文字列で指定します。15 文字を超える名前は切り捨てられます。NULL 文字列は指定できません。NULL 文字列が指定されると、エラー (TPEINVAL) になります。 |
例: サービスの動的な宣言と宣言の取り消し 次のコード例は、tpadvertise() 関数の使用方法を示しています。このコードでは、サーバ TLR が起動時に TLR_INIT サービスだけを提供するようにコーディングされています。初期化後、TLR_INIT は DEPOSIT と WITHDRAW という 2 つのサービスを宣言します。両サービスとも tlr_funcs 関数によって実行され、サーバ TLR に組み込まれています。 DEPOSIT と WITHDRAW を宣言した後、TLR_INIT は自分自身で宣言を取り消します。 動的な宣言と宣言の取り消しextern void tlr_funcs()
.
.
.
if (tpadvertise("DEPOSIT", (tlr_funcs)(TPSVCINFO *)) == -1)
check for errors;
if (tpadvertise("WITHDRAW", (tlr_funcs)(TPSVCINFO *)) == -1)
check for errors;
if (tpunadvertise("TLR_INIT") == -1)
check for errors;
tpreturn(TPSUCCESS, 0, transb->data,0L, 0);
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|