Oracle Tuxedo アプリケーションの設定

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

ワークステーション クライアントの設定

ここでは、以下の内容について説明します。

 


ワークステーション クライアントの定義

ワークステーション クライアントを Oracle Tuxedo アプリケーションに参加させるには、対応するアプリケーション環境が必要です。Oracle Tuxedo システムには、次の表に示すような、環境設定用の変数が用意されています。TUXDIR および WSNADDR は必須の変数であり、それ以外は、省略可能な変数です。WSENVFILE 以外のパラメータには、デフォルト値が用意されています。

説明
設定する環境変数
アプリケーション パスワード。パスワードによるセキュリティ機能を実装するアプリケーションでのみ有効です。スクリプトから実行するクライアントは、この変数を使用してアプリケーション パスワードを取得できます。
APP_PW (省略可能)
SSL の開始時に認証に使用するためのセキュリティ プリンシパル名の識別文字列を指定します。このパラメータには、最後の NULL 文字を除いて 511 文字まで指定できます。
SEC_PRINCIPAL_NAME (省略可能)
SEC_PRINCIPAL_NAME で指定されたプリンシパルの復号化 (プライベート) キーを収めるファイルまたはデバイスの場所を指定します。このパラメータには、最後の NULL 文字を除いて 1023 文字まで指定できます。
SEC_PRINCIPAL_LOCATION (省略可能)
SEC_PRINCIPAL_NAME で指定されたプリンシパルのパスワードが格納される変数を指定します。このパラメータには、最後の NULL 文字を除いて 31 文字まで指定できます。
SEC_PRINCIPAL_PASSWORD (省略可能)
リンクレベルの暗号化に使用する暗号化キーの最上位ビットの最大数。設定できる値は、0 (暗号を使用しない場合) か、40、56、128、または 256 (指定された番号が暗号化キーの最上位ビット数の場合) です。
TMMAXENCRYPTBITS (省略可能)
リンクレベルの暗号化に使用する暗号化キーの最上位ビットの最小数。設定できる値は、0 (暗号を使用しない場合) か、40、56、128、または 256 (指定された番号が暗号化キーの最上位ビット数の場合) です。
TMMINENCRYPTBITS (省略可能)
WSRPLYMAX 値に達した場合に応答を格納するディレクトリ。デフォルト値は作業ディレクトリです。
TMPDIR (省略可能)
ワークステーション マシンが、割り当てられた MBSTRING 型付きバッファに格納するコードセットのエンコーディング名。
TPMBENC のデフォルト値はありません。MBSTRING 型付きバッファを使用するワークステーション クライアントの場合、ワークステーション マシン上で TPMBENC を定義する必要があります。
TPMBENC (省略可能)
ワークステーション マシンが、受信した MBSTRING バッファのデータを、TPMBENC で定義されたエンコードに自動的に変換するかどうか。デフォルトでは自動変換は無効になっています。受信した MBSTRING バッファのデータは、エンコードの変換はされないままでワークステーション クライアントに配信されます。TPMBACONVY (yes) などの値に設定すると、自動変換が有効になります。
TPMBACONV (省略可能)
このワークステーション上での Oracle Tuxedo システム ソフトウェアの場所。この環境変数を設定しないと、クライアントは接続を確立できません。
TUXDIR (必須)
ワークステーション マシンが文書型定義 (DTD)、XML スキーマ、およびエンティティ ファイルをキャッシュするかどうか。デフォルトでは、キャッシングは有効になっています (Y)。URLENTITYCACHINGN (no) に設定すると、キャッシングは無効になります。
URLENTITYCACHING (省略可能)
ワークステーション マシンが DTD、スキーマ、およびエンティティ ファイルをキャッシュするディレクトリ。URLENTITYCACHEDIR 変数には、キャッシュするファイルの絶対パス名を指定します。URLENTITYCACHEDIR を指定しない場合、デフォルトのディレクトリは URLEntityCachedir になります。このディレクトリはワークステーション クライアント プロセスの現在の作業ディレクトリ内に作成され、適切な書き込み権が設定されています。
URLENTITYCACHEDIR (省略可能)
使用するネットワーク デバイス。デフォルト値は空文字列です。
WSDEVICE (省略可能)
すべての環境変数を設定するファイルの名前。この変数のデフォルト値はありません。
WSENVFILE (省略可能)
ワークステーション クライアントがワークステーション リスナまたはワークステーション ハンドラに接続するのに使用するネットワーク アドレス。この変数および WSFRANGE 環境変数は、TCP/IP ポート (ワークステーション クライアントがアウトバウンド接続を行う前にバインドするときのバインド先) の範囲を指定します。このアドレスは、TCP/IP アドレスでなければなりません。
WSFADDR (省略可能)
ワークステーション クライアントのプロセスが、アウトバウンド接続を確立する前にバインドする TCP/IP ポートの範囲。範囲のベースとなるアドレスは、WSFADDR パラメータで指定します。
WSFRANGE (省略可能)
クライアントがコンタクトする WSL の 1 つまたは複数のネットワーク アドレスのリスト。このアドレスは、アプリケーション コンフィグレーション ファイルにある WSL プロセスのアドレスと一致する必要があります。
WSNADDR (必須)
アプリケーションの応答を一時的に保存するためのコア メモリのサイズ。デフォルト値は 256,000 バイトです。
WSRPLYMAX (省略可能)
マシンのタイプ。WSL が動作するマシンのコンフィグレーション ファイルで指定されている TYPE の値と同じ値を WSTYPE に指定すると、エンコード/デコードは行われません。デフォルト値は空文字列です。
WSTYPE (省略可能)

 


ワークステーション クライアントの最大数の設定

アプリケーションにワークステーション クライアントを参加させるには、UBBCONFIG ファイルの MACHINES セクションで MAXWSCLIENTS パラメータを指定する必要があります。

MAXWSCLIENTS は、Workstation 機能専用の唯一のパラメータです。MAXWSCLIENTS に指定された値は、Oracle Tuxedo システムの起動時に通知され、ワークステーション クライアント用に確保するアクセサ スロットの数が決まります。ネイティブ クライアントの場合、各アクセサ スロットに必要なセマフォは 1 つです。一方、ワークステーション ハンドラ プロセス (ワークステーション クライアントの代わりにネイティブ プラットフォーム上で実行するプロセス) は、ワークステーション クライアントのアクセスを単一のアクセサ スロットに多重化するので、必要なセマフォは 1 つだけです。この点も、Workstation コンポーネントの利点の 1 つです。多くのクライアントをネイティブ プラットフォームからワークステーションに移動することによって、アプリケーションで使用する IPC リソースを減らすことができます。

MAXWSCLIENTS は、MAXACCESSERS に指定された数のうち、指定された数のアクセサ スロットを使用します。MAXWSCLIENTS の設定時には、ネイティブ クライアントとサーバを収容するために必要な数のスロットを残しておく必要があります。MAXWSCLIENTS 値が MAXACCESSERS 値を超えると、tpinit() の実行時にネイティブ クライアントとサーバが失敗します。次の表は、MAXWSCLIENTS パラメータの説明です。

パラメータ
説明
MAXWSCLIENTS
マシンに接続する WSC の最大数を指定します。
構文は MAXWSCLIENTS=number です。デフォルト値は 0 です。
MAXWSCLIENTS を指定しないと、WSC は指定されたマシンに接続できません。

 


ワークステーション リスナ (WSL) のサーバとしての定義

ワークステーション クライアントがアプリケーションにアクセスするときは、1 つの WSL プロセスと 1 つ以上の WSH プロセスのサービスが介在します。WSL は、複数のワークステーション クライアントをサポートできます。つまり、すべてのワークステーション クライアントは、WSL のコマンドラインで指定される同一のネットワーク アドレスでアプリケーションと接続します。リスナは、1 つまたは複数のワークステーション ハンドラ プロセスをスケジューリングします。

WSH プロセスは、アプリケーションの管理ドメインで、リモート ワークステーション上のクライアントの代理として機能します。WSH は多重化スキーマによって、複数のワークステーション クライアントを同時にサポートします。

アプリケーションにワークステーション クライアントを参加させるには、UBBCONFIG ファイルの SERVERS セクションにワークステーション リスナ (WSL) のプロセスを指定する必要があります。サーバを指定する場合と同じ構文を使用してください。

WSL プロセスに対する情報の指定

WSL プロセスに情報を渡すには、コマンドライン オプション文字列 (CLOPT) を使用します。CLOPT パラメータの形式は、次のとおりです。

CLOPT="[ -A ] [servopts_options] -- -n netaddr [-d device]
[-w WSHname][-t timeout_factor][-T Client_timeout]
[-m minh][-M maxh][-x mpx_factor ]
[-p minwshport][-P maxwshport]
[-I init_timeout][-c compression_threshold]
[-k compression_threshold]
[-z bits][-Z bits][-H external_netaddr]
[-N network_timeout][-K{client|handler|both|none}]"

-A オプションを指定すると、WSL は起動時にすべてのサービスを提供します。デフォルトでは、このオプションが用意されていますが、ここでは、システム提供のサーバとアプリケーション サーバの違いを強調するために示してあります。アプリケーション サーバの起動時には、利用可能なサービスのサブセットだけが提供される場合もあります。

二重ダッシュ (--) は、起動後に WSL に渡されるパラメータ リストの開始位置を示します。

CLOPT でのコマンドライン オプションの使用

以下のコマンドライン オプションは、CLOPT 文字列の二重ダッシュ (--) の後に指定することができます。

注意 : CLOPT コマンドライン オプションの詳細なリストについては、『Oracle Tuxedo のファイル形式とデータ記述方法』の「servopts(5)」を参照してください。

コマンドライン オプション
説明
-n netaddr
(必須)
WSC がリスナに接続するためのネットワーク アドレス。WSC は、-n の後に指定されている値に対し、適切な環境変数 (WSNADDR) を設定する必要があります。
[-d device]
(一部のトランスポート インタフェースでは必須)
ネットワーク デバイス名。
これは、一部のトランスポート インタフェースでのみ必要な省略可能なパラメータです。たとえば、ソケットではこのパラメータは必要ありません。
[-t timeout]
クライアントが WSH に接続するまでの時間。
システムは timeout の値と SCANUNIT パラメータの値を乗算して、接続までの時間を算出します。
デフォルト値は、セキュリティなしのアプリケーションでは 3、セキュリティ付きアプリケーションでは 6 です。このコンテキストでは、次のいずれかのパラメータが設定されているアプリケーションは、セキュリティ付きであると見なされます。
  • USER_AUTH
  • ACL
  • MANDATORY_ACL
  • APP_PW
[-w name]
このリスナに対して起動する WSH プロセスの名前。デフォルト値は WSH、つまり提供されているハンドラの名前です。buildwsh(1) コマンドで別のハンドラ プロセスを作成した場合は、その名前をここで指定します。
[-m number]
起動し、常に利用可能にしておくハンドラの最小数。デフォルト値は 0 です。
[-M number]
起動できるハンドラの最大数。デフォルト値は、マシンの MAXWSCLIENTS を多重係数 (-x で指定) で割った値です。
[-x number]
WSH が同時に多重化できるクライアントの最大数。この値は 0 より大きくなければなりません。デフォルト値は 10 です。
[-T client_timeout]
クライアントが、接続を切断されないままアイドル状態でいられる時間 (分)。クライアントがこの時間内に要求を行わなかった場合、WSH はクライアント接続を切断します。この引数を指定しない場合、または 0 が指定されている場合、タイムアウトは発生しません。
[-p minwshport] および [-P maxwshport]
このリスナ サーバに関連付けられている WSH が使用できるポート番号の範囲。0 ~ 65535 の範囲のポート番号を指定してください。デフォルト値は、minwshport が 2048、maxwshport が 65535 です。
[-z] および [-Z]
WSL 側で、リンクレベルの暗号化のために使用できるビットの範囲。ビットの最小値を指定するには -z を使用し、最大値を指定するには -Z を指定します。
[-N network_timeout]
ワークステーション クライアントが WSL/WSH からの応答を受け取るまでの最小待機時間 (秒)。デフォルト値は 0、つまりタイムアウトが発生しないことを示します。
[-K {client | handler | both | none}]
ワークステーション ハンドラとワークステーション クライアントの間で、指定された時間内にトラフィックが発生しなかった場合、これらの間で接続を確立するかどうか。

関連項目

 


ネットワーク障害の検出

Workstation コンポーネントには、ネットワーク接続が切断されてもハング状態が無期限に続かないようにするための、WSL 用の管理オプションが用意されています。これにより、次のことを実現できます。

 


keep-alive オプションの使用

keep-alive は、ワークステーション ハンドラとワークステーション クライアントの間で一定期間トラフィックが発生しなかった場合に、その接続の実行可能性を定期的にチェックするネットワーク機能です。

keep-alive オプションを要求するには、UBBCONFIG ファイルの SERVERS セクションで、WSL CLOPT エントリに -K オプションを追加します。-K オプションは、clienthandlerboth、または none という引数を取ります。

オプション
目的
-K client
クライアント マシンから keep-alive メッセージを生成します。keep-alive メッセージが認識されない場合、クライアント マシンはネットワークがダウンしていると見なします。以降の ATMI 呼び出しは、TPESYSTEMtperrno で異常終了します。
-K handler
ハンドラ マシンから keep-alive メッセージを生成します。keep-alive メッセージが認識されない場合、ハンドラ マシンはネットワークがダウンしているものとみなします。ハンドラは、応答しないクライアントに関連するエントリをクリーンアップします。この結果、ワークステーションが同時に多重化できるクライアント (-x で指定) を、ハンドラが消費しないようにすることができます。
-K both
クライアント マシンとハンドラ マシンの両方から、keep-alive メッセージを生成します。このコンポーネントの利用度とタイムアウトのしきい値は、オペレーティング システムの調整可能なパラメータによって決まります。
-K none
keep-alive オプションをオフにします。この設定は、-K をまったく指定しない場合と同じ結果になります。

UBBCONFIG ファイル内のエントリは、次のようになります。

WSL SRVGRP="WSLGRP" SRVID=1000 RESTART=Y GRACE=0
CLOPT="-A -- -n //ws.beasys.com:5120 -d /dev/tcp -K both"

この例では、-K により、ワークステーション クライアントとワークステーション サーバの両方の keep-alive チェックが有効になります。

UBBCONFIGWSL エントリの詳細については、『Oracle Tuxedo のファイル形式とデータ記述方法』の「WSL(5)」を参照してください。

注意 : 指定したタイムアウト値は、システム全体に適用されます。1 つのアプリケーションに対してタイムアウト値を指定し、その値を後で変更すると、keep-alive を使用するすべてのアプリケーションに影響します。

keep-alive オプションの制約

keep-alive オプションは、ソケットを使用する Oracle Tuxedo システムを搭載したプラットフォームでのみサポートされます。

このオプションは、上記以外のプラットフォームでは使用できません。Oracle Tuxedo システムでは、どのサーバ マシンにも -K オプションを指定できますが、上記以外のプラットフォームでは正しく実行されません。上記以外のプラットフォームで keep-alive 機能を実行すると失敗し、ユーザ ログにメッセージが書き込まれます (WSH のプロセスごとに 1 回)。処理は、通常どおり続行します。

注意 : keep-alive 機能は、TCP/IP 通信でのみ有効です。

 


ネットワーク タイムアウト オプションの使用

ネットワーク タイムアウトとは、ワークステーション クライアントによる操作を待機する時間を指定するオプションです。ここで指定した時間を経過すると、操作に対する要求は、ネットワーク上でキャンセル (タイムアウト) されます。

ネットワーク タイムアウトは、WSL の管理オプションである -N を使用して要求できます。-N オプションは、ネットワーク タイムアウトを使用して、ワークステーション クライアントのデータを受信します。

ネットワーク タイムアウトのしくみ

ネットワーク タイムアウト オプションにより、ワークステーション クライアントがネットワークからデータを受信するための Oracle Tuxedo 操作を待機する期間 (秒単位) が指定されます。この期間を過ぎると、操作は失敗し、クライアントはアプリケーションから切断されます。値 0 (デフォルト) はタイムアウトが発生しないことを示します。

注意 : この値を低く設定しすぎると、接続が頻繁に切断されます。

タイムアウトが発生すると、各 ATMI 関数はエラーを返します。リンクでタイムアウトが発生すると、アプリケーションに通知されます。この場合、既存のエラー コードが使用されます。特定のエラー コードの詳細については、tperrordetail(3c) を呼び出して参照してください。ネットワーク タイムアウトが発生すると、未処理の操作は信頼できない状態になります。つまり、トランザクションが途中で終了したり、応答が失われたりします。アプリケーションへの接続を安全に終了するには、WSH と通信せずに、tpterm(3c) の呼び出しと同じ操作を行います。

操作が返される時点では、クライアントは Oracle Tuxedo アプリケーションの一部ではなくなっています。クライアントを再度アプリケーションに参加させるには、次のどちらかの方法を使用します。

ネットワーク タイムアウト オプションの制限

ネットワーク タイムアウト オプションの設定

Oracle Tuxedo アプリケーションにネットワーク タイムアウト オプションを指定するには、WSL CLOPT の引数に -N オプションを追加します。

 


ワークステーション クライアントをサポートするコンフィグレーション ファイルの例

以下のサンプル コンフィグレーション ファイルからの抜粋は、bankapp アプリケーションにワークステーション コンポーネントを追加する方法を示しています。ここでは、MACHINES セクションと SERVERS セクションが変更されています。

コード リスト 14-1 ワークステーション クライアントをサポートする UBBCONFIG ファイルの例
*MACHINES
SITE1
              ...
              MAXWSCLIENTS=150
              ...
SITE2
              ...
MAXWSCLIENTS=0
...
*SERVERS
...
WSL SRVGRP=”BANKB1" SRVID=500 RESTART=Y
              CLOPT=”-A -- -n //ws.beasys.com:5120 -m 5 -M 30 -x 5"
                 ...

MACHINES セクションおよび SERVERS セクションの変更

MACHINES セクションおよび SERVERS セクションが次のように変更されています。


  ページの先頭       前  次