BEA Logo BEA Tuxedo Release 8.0

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

 

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

 


サービスの宣言と宣言の取り消し

サーバは起動時に、コンフィギュレーション・ファイルの 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(3cbl) 関数の呼び出しには、次の文法を使用します。

01 SERVICE-NAME           PIC X(15).
01 PROGRAM-NAME PIC X(32).
01 TPSTATUS-REC.
COPY TPSTATUS.
CALL "TPADVERTISE" USING SERVICE-NAME PROGRAM-NAME TPSTATUS-REC.

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

TPADVERTISE データ構造体のメンバ

メンバ

説明

SERVICE-NAME

宣言するサービスの名前。サービス名は 15 文字以下の文字列で指定します。15 文字を超える名前は切り捨てられます。SPACES 文字列は指定できません。NULL 文字列が指定されると、エラー (TPEINVAL) になります。

PROGRAM-NAME

サービスを実行するために呼び出される BEA Tuxedo システム・ルーチン。通常、この名前とサービス名は同じです。SPACES 文字列は指定できません。NULL 文字列が指定されると、エラーになります。

サービス宣言の取り消し

TPUNADVERTISE(3cbl) ルーチンは、掲示板のサービス・テーブルからサービス名を削除します。サービス名が削除されたサービスは、宣言されていない状態になります。

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

01 SERVICE-NAME           PIC X(15).
01 TPSTATUS-REC.
COPY TPSTATUS.
CALL "TPUNADVERTISE" USING SERVICE-NAME TPSTATUS-REC.

TPUNADVERTISE データ構造体のメンバは、次の表で説明する SERVICE-NAME だけです。

TPUNADVERTISE データ構造体のメンバ

メンバ

説明

SERVICE-NAME

宣言するサービスの名前。サービス名は 15 文字以下の文字列で指定します。15 文字を超える名前は切り捨てられます。SPACES 文字列は指定できません。NULL 文字列が指定されると、エラー (TPEINVAL) になります。

例: サービスの動的な宣言と宣言の取り消し

次のコード例は、TPADVERTISE ルーチンの使用方法を示しています。このコードでは、サーバ TLR が起動時に TLRINIT サービスだけを提供するようにコーディングされています。初期化後、TLRINITDEPOSITWITHDRAW という 2 つのサービスを宣言します。両サービスとも TLRFUNCS ルーチンによって実行され、サーバ TLR に組み込まれています。

DEPOSITWITHDRAW を宣言した後、TLRINIT は自分自身で宣言を取り消します。

動的な宣言と宣言の取り消し

    . . .
**************************************************
* TLRFUNCS ルーチンで処理する
* DEPOSIT サービスの宣言
**************************************************
MOVE "DEPOSIT" TO SERVICE-NAME.
MOVE "TLRFUNCS" TO PROGRAM-NAME.
CALL "TPADVERTISE" USING SERVICE-NAME
PROGRAM-REC
TPSTATUS-REC.
IF NOT TPOK
error processing
**************************************************
* 同じ TLRFUNCS ルーチンで処理する
* WITHDRAW サービスの宣言
**************************************************
MOVE "WITHDRAW" TO SERVICE-NAME.
MOVE "TLRFUNCS" TO PROGRAM-NAME.
CALL "TPADVERTISE" USING SERVICE-NAME
PROGRAM-REC
TPSTATUS-REC.
IF NOT TPOK
error processing
**************************************************
* TLRINIT サービスの宣言の取り消し
**************************************************
MOVE "TLRINIT" TO SERVICE-NAME.
CALL "TPUNADVERTISE" USING SERVICE-NAME
TPSTATUS-REC.
IF NOT TPOK
error processing

 

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