|
ワークステーション クライアントを Oracle Tuxedo アプリケーションに参加させるには、対応するアプリケーション環境が必要です。Oracle Tuxedo システムには、次の表に示すような、環境設定用の変数が用意されています。TUXDIR
および WSNADDR
は必須の変数であり、それ以外は、省略可能な変数です。WSENVFILE
以外のパラメータには、デフォルト値が用意されています。
アプリケーションにワークステーション クライアントを参加させるには、UBBCONFIG
ファイルの MACHINES
セクションで MAXWSCLIENTS
パラメータを指定する必要があります。
MAXWSCLIENTS
は、Workstation 機能専用の唯一のパラメータです。MAXWSCLIENTS
に指定された値は、Oracle Tuxedo システムの起動時に通知され、ワークステーション クライアント用に確保するアクセサ スロットの数が決まります。ネイティブ クライアントの場合、各アクセサ スロットに必要なセマフォは 1 つです。一方、ワークステーション ハンドラ プロセス (ワークステーション クライアントの代わりにネイティブ プラットフォーム上で実行するプロセス) は、ワークステーション クライアントのアクセスを単一のアクセサ スロットに多重化するので、必要なセマフォは 1 つだけです。この点も、Workstation コンポーネントの利点の 1 つです。多くのクライアントをネイティブ プラットフォームからワークステーションに移動することによって、アプリケーションで使用する IPC リソースを減らすことができます。
MAXWSCLIENTS
は、MAXACCESSERS
に指定された数のうち、指定された数のアクセサ スロットを使用します。MAXWSCLIENTS
の設定時には、ネイティブ クライアントとサーバを収容するために必要な数のスロットを残しておく必要があります。MAXWSCLIENTS
値が MAXACCESSERS
値を超えると、tpinit()
の実行時にネイティブ クライアントとサーバが失敗します。次の表は、MAXWSCLIENTS
パラメータの説明です。
ワークステーション クライアントがアプリケーションにアクセスするときは、1 つの WSL プロセスと 1 つ以上の WSH プロセスのサービスが介在します。WSL は、複数のワークステーション クライアントをサポートできます。つまり、すべてのワークステーション クライアントは、WSL のコマンドラインで指定される同一のネットワーク アドレスでアプリケーションと接続します。リスナは、1 つまたは複数のワークステーション ハンドラ プロセスをスケジューリングします。
WSH プロセスは、アプリケーションの管理ドメインで、リモート ワークステーション上のクライアントの代理として機能します。WSH は多重化スキーマによって、複数のワークステーション クライアントを同時にサポートします。
アプリケーションにワークステーション クライアントを参加させるには、UBBCONFIG
ファイルの SERVERS
セクションにワークステーション リスナ (WSL) のプロセスを指定する必要があります。サーバを指定する場合と同じ構文を使用してください。
WSL プロセスに情報を渡すには、コマンドライン オプション文字列 (CLOPT
) を使用します。CLOPT
パラメータの形式は、次のとおりです。
CLOPT="[ -A ] [servopts_options
] -- -nnetaddr
[-ddevice
]
[-wWSHname
][-ttimeout_factor
][-TClient_timeout
]
[-mminh
][-Mmaxh
][-xmpx_factor
]
[-pminwshport
][-Pmaxwshport
]
[-Iinit_timeout
][-ccompression_threshold
]
[-kcompression_threshold
]
[-zbits
][-Zbits
][-Hexternal_netaddr
]
[-Nnetwork_timeout
][-K{client|handler|both|none}]"
-A
オプションを指定すると、WSL は起動時にすべてのサービスを提供します。デフォルトでは、このオプションが用意されていますが、ここでは、システム提供のサーバとアプリケーション サーバの違いを強調するために示してあります。アプリケーション サーバの起動時には、利用可能なサービスのサブセットだけが提供される場合もあります。
二重ダッシュ (--
) は、起動後に WSL に渡されるパラメータ リストの開始位置を示します。
以下のコマンドライン オプションは、CLOPT
文字列の二重ダッシュ (--
) の後に指定することができます。
注意 : | CLOPT コマンドライン オプションの詳細なリストについては、『Oracle Tuxedo のファイル形式とデータ記述方法』の「servopts(5)」を参照してください。 |
Workstation コンポーネントには、ネットワーク接続が切断されてもハング状態が無期限に続かないようにするための、WSL
用の管理オプションが用意されています。これにより、次のことを実現できます。
WSH
からの応答をクライアントが待機する時間を制限できます。この時間を経過すると、WSH
との接続は切断されます (ネットワーク タイムアウト オプション)。
keep-alive は、ワークステーション ハンドラとワークステーション クライアントの間で一定期間トラフィックが発生しなかった場合に、その接続の実行可能性を定期的にチェックするネットワーク機能です。
keep-alive オプションを要求するには、UBBCONFIG
ファイルの SERVERS
セクションで、WSL
CLOPT
エントリに -K
オプションを追加します。-K
オプションは、client
、handler
、both
、または none
という引数を取ります。
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 チェックが有効になります。
UBBCONFIG
の WSL
エントリの詳細については、『Oracle Tuxedo のファイル形式とデータ記述方法』の「WSL(5)」を参照してください。
注意 : | 指定したタイムアウト値は、システム全体に適用されます。1 つのアプリケーションに対してタイムアウト値を指定し、その値を後で変更すると、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
セクションが変更されています。
*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
セクションが次のように変更されています。