bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo COBOL リファレンス

 Previous Next Contents View as PDF  

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 は、クライアントをリソース・マネージャ・グループ名と関連付けるときに使用します。GRPNAMESPACES の場合、クライアントは、リソース・マネージャに関連付けられず、デフォルトのクライアント・グループになります。

シングルコンテキスト・モードとマルチコンテキスト・モード

TPINITIALIZE() には、シングルコンテキスト・モードとマルチコンテキスト・モードの 2 つの動作モードがあります。シングルコンテキスト・モードでは、プロセスは 1 度に 1 つのアプリケーションに参加できます。シングルコンテキスト・モードは、CONTEXTS-FLAGTP-SINGLE-CONTEXT を設定して TPINITIALIZE() を呼び出すか、TPINITIALIZE() を暗黙的に呼び出す別の関数を呼び出すことによって指定されます。

シングルコンテキスト・モードで TPINITIALIZE() が 2 回以上呼び出された場合、つまり、クライアントがアプリケーションに参加した後で呼び出された場合は、アクションは何も実行されず、正常終了を示す戻り値が返されます。

マルチコンテキスト・モードは、CONTEXTS-FLAGTP-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 に返されます。クライアントへの通知の場合、この設定として次のものがあります。

TPU-SIG

シグナルによる任意通知を選択します。この設定は、CONTEXTS-FLAGTP-MULTI-CONTEXTS とともに使用することはできません。

TPU-DIP

ディップ・インによる任意通知を選択します。

TPU-IGN

任意通知を無視します。

一度にはこのいずれか 1 つのみ使用できます。クライアントが通知方法を選択しない場合、アプリケーションのデフォルトの方法が、TPINITIALIZE() の終了時に設定されます。

システム・アクセス・モードの設定の場合、設定として次のものがあります。

TPSA-FASTPATH

システム・アクセス・モードを fastpath に設定します。

TPSA-PROTECTED

システム・アクセス・モードを protected に設定します。

一度にはこのいずれか 1 つのみ使用できます。クライアントが通知方法またはシステム・アクセス・モードを選択しない場合、アプリケーションのデフォルトの方法が、TPINITIALIZE() の終了時に設定されます。クライアントの通知方法とシステム・アクセス・モードの詳細については、UBBCONFIG(5)を参照してください。

DATALEN は、サービスに送信されるアプリケーション固有のデータの長さです。アプリケーションが BEA Tuxedo システムのアプリケーション認証機能を使用しない場合、USRNAME および CLTNAMESPACES 値を使用できます。現時点では、GRPNAMESPACES でなければなりません。このオプションを使用するクライアントは、BEA Tuxedo システムにおいて次のように定義されます。USRNAMECLTNAME、および GRPNAME はデフォルト値、デフォルト設定で、アプリケーション・データは得られません。

戻り値

TPINITIALIZE() は正常終了時には、TP-STATUS に [TPOK] を設定します。異常終了時には、TPINITIALIZE() は呼び出し元プロセスのコンテキストを変更せず、-1 を返して、TP-STATUS にエラー条件を示す値を設定します。

エラー

TPINITIALIZE() は異常終了時には、TP-STATUS に次の値を設定します。

[TPEINVAL]

無効な引数が指定されました。

[TPENOENT]

領域制限のため、クライアントはアプリケーションに参加できません。

[TPEPERM]

クライアントは、パーミッションを持たないため、または正しいアプリケーション・パスワードが与えられていないために、アプリケーションに参加できません。許可が与えられない理由として、アプリケーション・パスワードが無効であった場合、アプリケーション固有の認証検査にパスできない場合、あるいは名前の使用制限がある場合などがあります。

[TPEPROTO]

TPINITIALIZE() の呼び出し方法が不適切です。たとえば、(a) 呼び出し元がサーバである場合、(b) シングルコンテキスト・モードで TP-MULTI-CONTEXTS 設定が指定された場合、または (c) マルチコンテキスト・モードで TP-MULTI-CONTEXTS 設定が指定されなかった場合などがあります。

[TPESYSTEM]

BEA Tuxedo システムのエラーが発生しました。エラーの正確な内容がログ・ファイルに書き込まれます。

[TPEOS]

オペレーティング・システムのエラーが発生しました。

移植性

TPINITIALIZE() に記述されているインターフェイスは、UNIX システムおよび MS-DOS オペレーティング・システム上でサポートされています。ただし、シグナル・ベースの通知方法は、MS-DOS ではサポートされていません。TPINITIALIZE() の実行時にこの通知方法が選択されると、USERLOG() メッセージが生成され、通知方法は自動的にディップインに設定されます。

環境変数

TUXCONFIG

TPINITIALIZE() がワークステーション・クライアントでないネイティブ・クライアントによって呼び出される際に、TPINITIALIZE() 内で使用されます。この変数は、クライアントの接続先になるアプリケーションを示します。なお、この環境変数は、TPINITIALIZE() が呼び出されるときにのみ参照されます。これ以降の呼び出しには、アプリケーション・コンテキストが使用されます。

WSENVFILE

TPINITIALIZE() がワークステーション・クライアントによって呼び出される際に、TPINITIALIZE() 内で使用されます。この変数には、環境変数の設定条件を収めたファイルを指定しますが、この設定は呼び出し元の環境で行うようにします。ワークステーション・クライアントに必要とされる環境変数の設定に関する詳細については、compilation(5) を参照してください。なお、このファイルは、TPINITIALIZE() が呼び出されるとき (その前ではなく) にのみ処理されます。

WSNADDR

TPINITIALIZE() がワークステーション・クライアントによって呼び出される際に、TPINITIALIZE() 内で使用されます。これは、アプリケーションをアクセスするときに使用されるワークステーション・リスナ・プロセスのネットワーク・アドレスを示します。この変数はワークステーション・クライアントの場合は必須ですが、ネイティブ・クライアントの場合は無視されます。

TCP/IP アドレスは次の形式で指定します。

"//host.name:port_number"
"//#.#.#.#:port_number"

最初の形式では、ドメインはローカル・ネーム解決機能 (通常 DNS) を使って、hostname のアドレスを見つけます。hostname はローカル・マシンでなければならず、ローカル・ネーム解決機能は、ローカル・マシンのアドレスへ hostname を解決しなければなりません。

2 番目の例の「#.#.#.#」はドットで区切った 10 進数の形式です。ドットで区切った 10 進数の形式では、各 # は 0 から 255 までの数でなければなりません。このドットで区切った 10 進数は、ローカル・マシンの IP アドレスを表現します。

上記両方の形式で、port_number はドメイン・プロセスが着信要求をリスンする TCP ポート番号です。port_number は 0 から 65535 の間の数字または名前です。port_number が名前の場合は、ローカル・マシンのネットワーク・サービス・データベースになければなりません。

アドレスは、先頭に ”0x”をつけ、16 進形式で指定することもできます。先頭の文字として、0 〜 9 までの数字か、または A から F までの文字 (大文字と小文字は区別しない) を指定できます。16 進数の形式は、IPX/SPX や TCP/IP のような任意のバイナリ・ネットワーク・アドレスに使うことができます。

アドレスはまた、任意の文字列として指定することもできます。値は、コンフィギュレーション・ファイルの中の NETWORKS セクションの NLSADDR パラメータに指定された値と同じでなければなりません。

WSNADDR アドレス用のコンマで区切られたパス名のリストを指定すると、複数のアドレスを指定することができます。接続が確立するまで順番にアドレス指定が試みられます。アドレス・リストのメンバは、どれでもパイプで区切られたネットワーク・アドレスのかっこ付きのグループとして指定することができます。次に例を示します。

 WSNADDR="(//m1.acme.com:3050|//m2.acme.com:3050),//m3.acme.com:3050"

Windows 下で実行するためには、アドレス文字列は以下のように表します。

set WSNADDR=(//m1.acme.com:3050^|//m2.acme.com:3050),//m3.acme.com:3050

パイプ記号 (|) は Windows では特殊文字と見みなされるため、コマンド行で指定する際は、その前に Windows 環境でのエスケープ文字のカレット (^) を前に付ける必要があります。ただし、WSNADDR が envfile で定義される場合、BEA Tuxedo システムは tuxgetenv(3c) 関数を通して、WSNADDR 定義の値を取得します。この場合、パイプ記号 (|) は特殊文字と見なされないので、カレット (^) を使用する必要はありません。

BEA Tuxedo システムはかっこ付きアドレスを無作為に選択します。この方法は、一連のリスナ・プロセスに対してランダムに負荷分散します。接続が確立するまで順番にアドレス指定が試みられます。ワークステーション・リスナを呼び出すには、アプリケーションのコンフィギュレーション・ファイルの値を使用してください。値の先頭が ”0x”のときは、16 進の文字列として解釈されます。それ以外の場合は、ASCII キャラクタとして解釈されます。

WSFADDR

TPINITIALIZE() がワークステーション・クライアントによって呼び出される際に、TPINITIALIZE() 内で使用されます。この変数は、ワークステーション・クライアントがワークステーション・リスナまたはワークステーション・ハンドラに接続するときに使用するネットワーク・アドレスを指定します。この変数は、WSFRANGE 変数とともに、ワークステーション・クライアントがアウトバウンド接続を行う前にバインドしようとする TCP/IP ポートの範囲を決定します。このアドレスには、TCP/IP アドレスを指定する必要があります。TCP/IP アドレスのポート部分は、ワークステーション・クライアントによってバインドされる一連の TCP/IP ポートのベース・アドレスを表します。WSFRANGE 変数は、範囲の大きさを指定します。たとえば、このアドレスが //mymachine.bea.com:30000WSFRANGE が 200 の場合、この LMID からアウトバウンド接続を試みるネイティブ・プロセスはすべて、mymachine.bea.com 30000 から 30200 の間のポートをバインドします。この変数を設定しないと、空の文字列が使用され、オペレーティング・システムはローカル・ポートをランダムに選択します。

WSFRANGE

TPINITIALIZE() がワークステーション・クライアントによって呼び出される際に、TPINITIALIZE() 内で使用されます。この変数は、ワークステーション・クライアント・プロセスが、アウトバウンド接続を行う前にバインドを試みる TCP/IP ポートの範囲を指定します。WSFADDR パラメータは、範囲のベース・アドレスを指定します。たとえば、WSFADDR パラメータが //mymachine.bea.com:30000 に設定され、WSFRANGE が 200 に設定されると、この LMID からアウトバウンド接続を試みるネイティブ・プロセスはすべて、mymachine.bea.com 30000 から 30200 の間のポートにバインドします。有効範囲は 1 から 65535 までです。デフォルト値は 1 です。

WSDEVICE

TPINITIALIZE() がワークステーション・クライアントによって呼び出される際に、TPINITIALIZE() 内で使用されます。これは、ネットワークのアクセス時に使用するデバイス名を示します。この変数はワークステーション・クライアントが使用し、ネイティブ・クライアントの場合は無視されます。なお、ソケットや NetBIOS などトランスポート・レベルのネットワーク・インターフェイスはデバイス名を必要としません。このようなインターフェイスによってサポートされているワークステーション・クライアントは、WSDEVICE を指定する必要はありません。

WSTYPE

TPINITIALIZE() がワークステーション・クライアントによって呼び出される際に、ネイティブ・サイトと符号化および復号化の義務について折衝するために TPINITIALIZE() 内で使用されます。この変数はワークステーション・クライアントの場合は省略可能で、ネイティブ・クライアントの場合は無視されます。

WSRPLYMAX

TPINITIALIZE() によって使用され、アプリケーション応答をファイルにダンプする前のバッファリングに使用するコア・メモリの最大容量を設定します。このパラメータのデフォルトの値は、実装方法に応じて異なります。詳細については、該当するプログラマ・ガイドを参照してください。

TMMINENCRYPTBITS

BEA Tuxedo システムに接続する際に必要な最小レベルの暗号化を確立するために使用されます。「0」は暗号化を行わないことを示します。「56」と「128」は暗号化キーの長さをビット単位で指定します。この最小レベルの暗号化が一致しない時は、リンクの確立は失敗します。デフォルトの値は「0」です。

TMMAXENCRYPTBITS

BEA Tuxedo システムに接続する際の暗号化の最大レベルを調整するために使用されます。「0」は暗号化を行わないことを示します。「56」と「128」は暗号化キーの長さをビット単位で指定します。デフォルト値は「128」です。

警告

シグナル・ベースの通知方法は、マルチコンテキスト・モードでは使用できません。また、シグナル・ベースの通知方法を選択するクライアントは、シグナルに関する制約から、システムからシグナルを受け取ることはできません。クライアントがシグナルを受け取ることができない場合、システムは、選択したクライアントへの通知方法をディップ・インに切り替えるログ・メッセージを生成し、クライアントはそれ以降ディップ・イン通知を介して通知を受けます。通知方法の詳細については、UBBCONFIG(5)RESOURCES セクションの NOTIFY パラメータの説明を参照してください。

クライアントのシグナル通知は、常にシステムによって行われるので、元の通知呼び出しがどこで行われるかにかかわらず、通知の形態は一貫しています。したがって、シグナル・ベースの通知を使用するには次の条件が必要です。

アプリケーション管理者の ID は、そのアプリケーションのコンフィギュレーション・ファイルで識別されます。

クライアントにシグナル・ベースの通知を選択すると、ある種の ATMI 呼び出しは正常に実行できないことがあります。このとき、TPSIGRSTRT の指定がない場合、任意通知型メッセージを受け取るため、TPGOTSIG が返されます。

関連項目

TPGETCTXT(3cbl)TPSETCTXT(3cbl)TPTERM(3cbl)

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy