|
|
TPINITIALIZE(3cbl)
名前
TPINITIALIZE() - BEA Tuxedo ATMI アプリケーションに参加する
形式
01 TPINFDEF-REC.
COPY TPINFDEF
01 USER-DATA-REC PIC X(any-length).
01 TPSTATUS-REC.
COPY TPSTATUS.
CALL "TPINITIALIZE" TPINFDEF-REC USER-DATA-REC TPSTATUS-REC.
機能説明
TPINITIALIZE() は、クライアントが BEA Tuxedo ATMI のアプリケーションに参加するときに使用します。 クライアントが BEA Tuxedo システムの通信ルーチンまたはトランザクション・ルーチンを使用するには、まず BEA Tuxedo ATMI のアプリケーションに参加する必要があります。 TPINITIALIZE() には、 シングルコンテキスト・モードとマルチコンテキスト・モードの 2 つの動作モードがあります。これについては、後で詳しく説明します。 シングルコンテキスト・モードでは TPINITIALIE() の呼び出しは任意選択なので、シングルコンテキストのクライアントは、TPINITIALIZE() を透過的に呼び出す多数の ATMI ルーチン (たとえば、TPACALL() や TPCALL()) を呼び出すことによりアプリケーションに参加することもできます。この場合、TPINITIALIZE() は、TPINFDEF-REC のメンバにデフォルト値を使用して呼び出されます。 クライアントは TPINITIALIZE() を直接呼び出すこともでき、その場合は、ここで説明するパラメータを設定することができます。 マルチコンテキスト・モードが必要な場合、またはアプリケーション認証が必要な場合には、TPINITIALIZE() を使用する必要があります (UBBCONFIG(5) の SECURITY キーワードの説明を参照)。 TPINITIALIZE() が正常終了した後、クライアントはサービス要求を開始し、トランザクションを定義できます。
シングルコンテキスト・モードで TPINITIALIZE() が 2 回以上呼び出された場合、つまり、クライアントがアプリケーションに参加した後で呼び出された場合は、アクションは何も実行されず、正常終了を示す戻り値が返されます。
TPINFDEF-REC レコードの説明
TPINFDEF-REC レコードは、次のようなメンバーで構成されています。
05 USRNAME PIC X(30).
05 CLTNAME PIC X(30).
05 PASSWD PIC X(30).
05 GRPNAME PIC X(30).
05 NOTIFICATION-FLAG PIC S9(9) COMP-5.
88 TPU-SIG VALUE 1.
88 TPU-DIP VALUE 2.
88 TPU-IGN VALUE 3.
05 ACCESS-FLAG PIC S9(9) COMP-5.
88 TPSA-FASTPATH VALUE 1.
88 TPSA-PROTECTED VALUE 2.
05 CONTEXTS-FLAG PIC S9(9) COMP-5.
88 TP-SINGLE-CONTEXT VALUE 0.
88 TP-MULTI-CONTEXTS VALUE 1.
05 DATALEN PIC S9(9) COMP-5.
USRNAME は呼び出し元を表す名前です。 CLTNAME は、その意味付けがアプリケーション側で定義されているクライアント名です。 値 sysclient は、CLTNAME フィールド用にシステムによって予約されています。 USRNAME および CLTNAME フィールドは TPINITIALIZE() 実行時にクライアントと関連付けられ、ブロードキャスト通知と管理統計情報の検索に使用されます。 PASSWD は、アプリケーション・パスワードとの認証に使用される非暗号化形式のアプリケーション・パスワードです。 PASSWD は 30 文字まで有効です。 GRPNAME は、クライアントをリソース・マネージャ・グループ名と関連付けるときに使用します。 GRPNAME が SPACES の場合、クライアントは、リソース・マネージャに関連付けられず、デフォルトのクライアント・グループになります。
シングルコンテキスト・モードとマルチコンテキスト・モード
TPINITIALIZE() には、 シングルコンテキスト・モードとマルチコンテキスト・モードの 2 つの動作モードがあります。 シングルコンテキスト・モードでは、プロセスは一度に 1 つのアプリケーションにしか参加できません。 シングルコンテキスト・モードは、CONTEXTS-FLAG の TP-SINGLE-CONTEXT を設定して TPINITIALIZE() を呼び出すか、TPINITIALIZE() を暗黙的に呼び出す別の関数を呼び出すことによって指定されます。
シングルコンテキスト・モードで TPINITIALIZE() が 2 回以上呼び出された場合、つまり、クライアントがアプリケーションに参加した後で呼び出された場合は、アクションは何も実行されず、正常終了を示す戻り値が返されます。
マルチコンテキスト・モードは、CONTEXTS-FLAG の TP-MULTI-CONTEXTS を設定してTPINITIALIZE() を呼び出すことにより指定されます。 マルチコンテキスト・モードでは、TPINITIALIZE() を呼び出すたびに別のアプリケーション関連が作成されます。
アプリケーション関連とは、プロセスと BEA Tuxedo アプリケーションを関連付けるコンテキストです。 クライアントは、複数の BEA Tuxedo アプリケーションとの関連、または同じアプリケーションとの複数の関連を作成できます。 クライアントのすべての関連は、同じリリースの BEA Tuxedo システムを実行するアプリケーションに対して作成します。また、すべての関連がネイティブ・クライアントであるか、すべての関連がワークステーション・クライアントでなければなりません。
ネイティブ・クライアントの場合、新しい関連の生成先になるアプリケーションは、TUXCONFIG 環境変数の値で決まります。 ワークステーション・クライアントの場合、新しい関連の生成先になるアプリケーションは、WSNADDR または WSENVFILE 環境変数の値で決まります。 現在の COBOL プロセスのコンテキストは、新しい関連に設定されます。
マルチコンテキスト・モードでは、アプリケーションは TPGETCTXT() を呼び出すことにより現在のコンテキストを表すハンドルを取得し、そのハンドルをパラメータとして TPSETCTXT() に渡して、特定の COBOL プロセスが動作するコンテキストを設定することができます。
シングルコンテキスト・モードとマルチコンテキスト・モードを一緒に使用することはできません。 アプリケーションでいずれかのモードを選択したら、すべてのアプリケーション関連に対して TPTERM() を呼び出すまで、TPINITIALIZE() をほかのモードで呼び出すことはできません。
TPINFDEF-REC レコードの説明
TPINFDEF-REC の設定により、クライアント固有の通知機構とシステム・アクセスのモードの両方を示すことができます。 これらの設定で、アプリケーションのデフォルトの設定を変更することができます。ただし、変更できない場合には、TPINITIALIZE() はログ・ファイルに警告メッセージを記録し、設定を無視して、TPINITIALIZE() の終了時にアプリケーションのデフォルト設定が TPINFDEF-REC に返されます。 クライアントへの通知の場合、この設定として次のものがあります。
一度にはこのいずれか 1 つのみ使用できます。 クライアントが通知方法を選択しない場合、アプリケーションのデフォルトの方法が、TPINITIALIZE() の終了時に設定されます。
システム・アクセス・モードの設定の場合、設定として次のものがあります。
一度にはこのいずれか 1 つのみ使用できます。 クライアントが通知方法またはシステム・アクセス・モードを選択しない場合、アプリケーションのデフォルトの方法が、TPINITIALIZE() の終了時に設定されます。 クライアントの通知方法とシステム・アクセス・モードの詳細については、UBBCONFIG(5)を参照してください。
DATALEN は、サービスに送信されるアプリケーション固有のデータの長さです。 アプリケーションが BEA Tuxedo システムのアプリケーション認証機能を使用しない場合、USRNAME および CLTNAME に SPACES 値を使用できます。 現時点では、GRPNAME は SPACES でなければなりません。 このオプションを使用するクライアントは、BEA Tuxedo システムにおいて次のように定義されます。 USRNAME、CLTNAME、および GRPNAME はデフォルト値、デフォルト設定で、アプリケーション・データは得られません。
戻り値
TPINITIALIZE() は正常終了時には、TP-STATUS に [TPOK] を設定します。 異常終了時には、TPINITIALIZE() は呼び出し元プロセスのコンテキストを変更せず、-1 を返して、TP-STATUS にエラー条件を示す値を設定します。
エラー
TPINITIALIZE() は異常終了時には、TP-STATUS に次の値を設定します。
移植性
TPINITIALIZE() に記述されているインターフェイスは、UNIX システムおよび MS-DOS オペレーティング・システム上でサポートされています。 ただし、シグナル・ベースの通知方法は、MS-DOS ではサポートされていません。 TPINITIALIZE() の実行時にこの通知方法が選択されると、USERLOG() メッセージが生成され、通知方法は自動的にディップインに設定されます。
環境変数
"//#.#.#.#:port_number"
WSNADDR="(//m1.acme.com:3050|//m2.acme.com:3050),//m3.acme.com:3050"
set WSNADDR=(//m1.acme.com:3050^|//m2.acme.com:3050),//m3.acme.com:3050
警告
シグナル・ベースの通知方法は、マルチコンテキスト・モードでは使用できません。 また、シグナル・ベースの通知方法を選択するクライアントは、シグナルに関する制約から、システムからシグナルを受け取ることはできません。 クライアントがシグナルを受け取ることができない場合、システムは、選択したクライアントへの通知方法をディップ・インに切り替えるログ・メッセージを生成し、クライアントはそれ以降ディップ・イン通知を介して通知を受けます。 通知方法の詳細については、UBBCONFIG(5) の RESOURCES セクションの NOTIFY パラメータの説明を参照してください。
クライアントのシグナル通知は常にシステムによって行われるので、元の通知呼び出しがどこで行われるかにかかわらず、通知の形態は一貫しています。 したがって、シグナル・ベースの通知を使用するには、以下が必要です。
アプリケーション管理者の ID は、そのアプリケーションのコンフィギュレーション・ファイルで識別されます。
クライアントにシグナル・ベースの通知を選択すると、ある種の ATMI 呼び出しは正常に実行できないことがあります。このとき、TPSIGRSTRT の指定がない場合、任意通知型メッセージを受け取るため、TPGOTSIG が返されます。
関連項目
TPGETCTXT(3cbl)、TPSETCTXT(3cbl)、TPTERM(3cbl)
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|