BEA Logo BEA Tuxedo Release 8.0

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

 

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

 


システムで提供されるサーバおよびサービス

制御プログラムは、システムで提供される 1 つのサーバ AUTHSVR、および 2 つのサブルーチン TPSVRINITTPSVRDONE を提供します。これらの 3 つのデフォルト・バージョンについては、以降の節で説明します。これらのサーバとサブルーチンは、ご使用のアプリケーションに合わせて変更することができます。

注記 TPSVRINITTPSVRDONE を独自にコーディングする場合、この 2 つのルーチンのデフォルト・バージョンが、それぞれ tx_open()tx_close() を呼び出すことに注意してください。tx_open() ではなく tpopen() を呼び出す TPSVRINIT の新しいバージョンをコーディングする場合は、tpclose() を呼び出す TPSVRDONE もコーディングする必要があります。つまり、この 2 つのルーチンが呼び出すオープンとクローズのルーチンは対になっていなければなりません。

システムで提供されるサーバ: AUTHSVR( )

AUTHSVR(5) を使用すると、アプリケーションで各クライアントの認証を行うことができます。このサーバは、アプリケーションのセキュリティ・レベルが TPAPPAUTHUSER_AUTHACL、または MANDATORY_ACL に設定されている場合に、TPINITIALIZE ルーチンによって呼び出されます。

AUTHSVR のサービスは、USER-DATA-REC レコードでユーザ・パスワードを確認します。このユーザ・パスワードは、TPINFDEF-REC レコードの PASSWD フィールドにあるアプリケーション・パスワードとは異なります。デフォルトでは、システムによって data から文字列が取得され、それと合致する文字列が /etc/passwd ファイルで検索されます。

TPINITIALIZE がネイティブ・サイトのクライアントから呼び出された場合、受信した USER-DATA-REC レコードはそのまま転送されます。そのため、アプリケーションでパスワードの暗号化が必要な場合、それに応じてクライアント・プログラムをコーディングする必要があります。

TPINITIALIZE がワークステーション・クライアントから呼び出された場合、データは暗号化されてからネットワークに送信されます。

システムで提供されるサービス:TPSVRINIT ルーチン

サーバの起動時に、BEA Tuxedo システムの制御プログラムはその初期化時、つまりサービス要求の処理を開始する前に、TPSVRINIT(3cbl) を呼び出します。

アプリケーションがこのルーチンのカスタム・バージョンをサーバに提供していない場合、制御プログラムで提供されるデフォルトのルーチンが呼び出されます。このルーチンは、リソース・マネージャをオープンし、エントリを中央イベント・ログに記録してサーバの起動が成功したことを示します。中央ユーザ・ログは自動的に生成されるファイルで、USERLOG(3cbl) ルーチンを呼び出して、プロセスがこのファイルにメッセージを書き込みます。中央イベント・ログの詳細については、「エラーの管理」を参照してください。

TPSVRINIT ルーチンを使用すると、アプリケーションで要求される次のような初期化プロセスを行うことができます。

以降の節では、TPSVRINIT を呼び出すことによって、これらの初期化プロセスがどのように行われるのかをコード例で示します。以下のコード例では示していませんが、このルーチン内ではメッセージ交換を行うこともできます。ただし、非同期応答が未処理のままで TPSVRINIT ルーチンが制御を戻すと、このルーチンは失敗します。その場合、BEA Tuxedo システムでは応答は無視されて、サーバが正常に終了します。

また、TPSVRINIT ルーチンで、トランザクションを開始したり終了することができます。「エラーの管理」を参照してください。

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

LINKAGE SECTION.
01 CMD-LINE.
05 ARGC PIC 9(4) COMP-5.
05 ARGV.
10 ARGS PIC X OCCURS 0 TO 9999 DEPENDING ON ARGC
.
01 TPSTATUS-REC.
COPY TPSTATUS.
PROCEDURE DIVISION USING CMD-LINE TPSTATUS-REC.
* ユーザ・コード
EXIT PROGRAM.

コマンド行オプションの取得

サーバは、起動時に最初の処理として、コンフィグレーション・ファイルに指定されているサーバ・オプションを読み取ります。これらのオプションは、引数の個数を格納する ARGC と、1 つの SPACE 文字で区切られた引数を格納する ARGV を使用して渡されます。その後、定義済み制御プログラムが TPSVRINIT を呼び出します。

次のコード例は、TPSVRINIT ルーチンでコマンド行オプションを取得する方法を示しています。

TPSVRINIT を使用したコマンド行オプションの取得

  IDENTIFICATION DIVISION.
PROGRAM-ID. TPSVRINIT.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER.USL-486.
OBJECT-COMPUTER.USL-486.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
*
LINKAGE SECTION.
*
01 CMD-LINE.
05 ARGC PIC 9(4) COMP-5.
05 ARGV.
10 ARGS PIC X OCCURS 0 TO 9999 DEPENDING ON ARGC.
01 SERVER-INIT-STATUS.
COPY TPSTATUS.
*
PROCEDURE DIVISION USING CMD-LINE SERVER-INIT-STATUS.
******************************************************
* ARGC は引数の個数を示し、
* ARGV は 1 つの SPACE で区切られた引数を格納します。
******************************************************
A-START.
*
. . . INSPECT the ARGV line and process arguments
IF arguments are invalid
SET TPEINVAL IN SERVER-INIT-STATUS TO TRUE.
ELSE arguments are OK continue
SET TPOK IN SERVER-INIT-STATUS TO TRUE.
*
EXIT PROGRAM.

リソース・マネージャのオープン

TPSVRINIT のもう 1 つの使用法として、リソース・マネージャをオープンすることができます。以下のコード例は、その方法を示しています。BEA Tuxedo システムには、リソース・マネージャをオープンするルーチンとして、TPOPEN(3cbl)TXOPEN(3cbl) があります。また、これらと対のルーチンとして、TPCLOSE(3cbl)TXCLOSE(3cbl) があります。これらのルーチンを呼び出してリソース・マネージャをオープンしたりクローズするアプリケーションは、その意味では移植性があります。これらのアプリケーションは、コンフィギュレーション・ファイルに設定されたリソース・マネージャのインスタンス固有の情報にアクセスすることによって動作します。

これらのルーチン呼び出しは省略可能です。また、リソース・マネージャがデータベースの場合、リソース・マネージャ固有の呼び出しがデータ操作言語 (DML) の一部であるときは、その呼び出しの代わりに使用できます。USERLOG(3cbl) ルーチンを使用して、中央イベント・ログに書き込んでいることに注目してください。

注記 コマンド行オプションを受け取り、データベースをオープンする初期化関数を作成するには、次のコード例と前述のコード例を組み合わせます。

TPSVRINIT を使用したリソース・マネージャのオープン

  IDENTIFICATION DIVISION.
PROGRAM-ID. TPSVRINIT.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER.USL-486.
OBJECT-COMPUTER.USL-486.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TPSTATUS-REC.
COPY TPSTATUS.
01 LOGMSG PIC X(50).
01 LOGMSG-LEN PIC S9(9) COMP-5.
*
LINKAGE SECTION.
01 CMD-LINE.
05 ARGC PIC 9(4) COMP-5.
05 ARGV.
10 ARGS PIC X OCCURS 0 TO 9999 DEPENDING ON ARGC.
01 SERVER-INIT-STATUS.
COPY TPSTATUS.
*
PROCEDURE DIVISION USING CMD-LINE SERVER-INIT-STATUS.
A-START.
. . . INSPECT the ARGV line and process arguments
IF arguments are invalid
MOVE "Invalid Arguments Passed" TO LOGMSG
PERFORM EXIT-NOW.
ELSE arguments are OK continue

CALL "TPOPEN" USING TPSTATUS-REC.
IF NOT TPOK
MOVE "TPOPEN Failed" TO LOGMSG
ELSE IF TPESYSTEM
MOVE "System /T error has occurred" TO LOGMSG
ELSE IF TPEOS
MOVE "An Operating System error has occurred" TO LOGMSG
ELSE IF TPEPROTO
MOVE "TPOPEN was called in an improper Context" TO LOGMSG
ELSE IF TPERMERR
MOVE "Resource manager Failed to Open" TO LOGMSG
PERFORM EXIT-NOW.
SET TPOK IN SERVER-INIT-STATUS TO TRUE.
EXIT PROGRAM.
EXIT-NOW.
SET TPEINVAL IN SERVER-INIT-STATUS TO TRUE
MOVE 50 LOGMSG-LEN.
CALL "USERLOG" USING LOGMSG
LOGMSG-LEN
TPSTATUS-REC.
EXIT PROGRAM.

初期化時にエラーが発生しないように、サーバを終了してからサービス要求の処理を開始するように TPSVRINIT をコーディングできます。

システムで提供されるサービス:TPSVRDONE ルーチン

TPSVRINITTPOPEN を呼び出してリソース・マネージャをオープンするのと同じように、TPSVRDONE ルーチンは TPCLOSE を呼び出してリソース・マネージャをクローズします。

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

  01 TPSTATUS-REC.
COPY TPSTATUS.
PROCEDURE DIVISION.
* ユーザ・コード
EXIT PROGRAM.

次のコード例は、TPSVRDONE ルーチンを使用して、リソース・マネージャをクローズして終了する方法を示しています。

TPSVRDONE を使用したリソース・マネージャのクローズ

  IDENTIFICATION DIVISION.
PROGRAM-ID. TPSVRDONE.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER.USL-486.
OBJECT-COMPUTER.USL-486.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TPSTATUS-REC.
COPY TPSTATUS.
01 LOGMSG PIC X(50).
01 LOGMSG-LEN PIC S9(9) COMP-5.
01 SERVER-DONE-STATUS.
COPY TPSTATUS.
PROCEDURE DIVISION.
A-START.
CALL "TPCLOSE" USING TPSTATUS-REC.
IF NOT TPOK
MOVE "TPCLOSE Failed" TO LOGMSG
ELSE IF TPESYSTEM
MOVE "System /T error has occurred" TO LOGMSG
ELSE IF TPEOS
MOVE "An Operating System error has occurred" TO LOGMSG
ELSE IF TPEPROTO
MOVE "TPCLOSE was called in an improper Context" TO LOGMSG
ELSE IF TPERMERR
MOVE "Resource manager Failed to Open" TO LOGMSG
PERFORM EXIT-NOW.
SET TPOK IN SERVER-DONE-STATUS TO TRUE.
EXIT PROGRAM.
EXIT-NOW.
SET TPEINVAL IN SERVER-DONE-STATUS TO TRUE
MOVE 50 LOGMSG-LEN.
CALL "USERLOG" USING LOGMSG
LOGMSG-LEN
TPSTATUS-REC.
EXIT PROGRAM.

 

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