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

このトピックには、次の項があります。

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

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

表15‑1 ワークステーション・クライアントの定義

説明 設定する環境変数
アプリケーション・パスワード。(パスワードによるセキュリティ機能を実装するアプリケーションでのみ有効です。)スクリプトから実行するクライアントは、この変数を使用してアプリケーション・パスワードを取得できます。 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バッファのデータは、そのまま(エンコーディングの変換なしに)ワークステーション・クライアントに配信されます。TPMBACONVをY (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(オプション)

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

アプリケーションにワークステーション・クライアントを参加させるには、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は指定されたマシンに接続できません。

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

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

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

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

15.3.1 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に渡されるパラメータ・リストの開始位置を示します。

15.3.2 CLOPTでのコマンド行オプションの使用

次の表に示すコマンド行オプションは、CLOPT文字列の二重ダッシュ(--)の後に指定できます。

表15-2 CLOPTでのコマンド行オプション・セットの使用

使用するコマンド行オプション 説明
-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}] ワークステーション・ハンドラとワークステーション・クライアントの間で、指定された時間内にトラフィックが発生しなかった場合、これらの間で接続を確立するかどうか。

関連項目:

15.4 ネットワーク障害の検出

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

15.5 keep-aliveオプションの使用

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

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

次の表に、keep-aliveオプションを示します。

表15-3 keep-aliveオプションの使用

オプション 目的
-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エントリ形式の詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』WSL(5)に関する項を参照してください。

ノート:

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

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

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

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

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

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

ノート:

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

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

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

  • tpinit(3c)を呼び出す
  • 暗黙的な接続を使用する(セキュリティが構成されていない場合)

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

  • ネットワークの送信操作に対してネットワーク・タイムアウトは設定できません。
  • ネットワーク・タイムアウトの値がトランザクション・タイムアウトまたはブロッキング・タイムアウトの値より小さいと、クライアントは、リクエストの処理が完了する前に切断される場合があります。
  • ネットワーク・タイムアウトが発生すると、接続がまだ有効でもワークステーション・クライアントの接続は切断されます

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

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

15.7 ワークステーション・クライアントをサポートする構成ファイルの例

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

ワークステーション・クライアントをサポートするサンプルUBBCONFIGファイルのリスト

*MACHINES
SITE1
                  ...
                  MAXWSCLIENTS=150
                  ...
SITE2
                  ...
                  MAXWSCLIENTS=0
                  ...
*SERVERS
                  ...
WSL SRVGRP=”BANKB1" SRVID=500 RESTART=Y
              CLOPT=”-A -- -n //ws.oracle.com:5120 -m 5 -M 30 -x 5"
                 ...

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

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

  • MACHINESセクションでは、MAXWSCLIENTSのデフォルト値が2つのサイトのエントリでオーバーライドされています。SITE1ではデフォルト値が150に引き上げられ、SITE2では0に引き下げられています。値0の場合は、ワークステーションが接続されません。
  • SERVERSセクションでは、WSLプロセスはグループBANKB1に指定されています。WSLのサーバーIDは500です。再起動可能と指定されています。
  • コマンド行オプションでは、以下の値が指定されています。
    • WSLはすべてのサービスを通知します(-A)。
    • WSLはネットワーク・アドレス//ws.oracle.com:5120でリスニングします(-n)。
    • 最低5つのWSHが起動します(-m)。
    • 最大30のWSHが起動します(-M)。
    • 各ハンドラは同時に最大5つのクライアントを接続できます(-x)。