ワークステーション・クライアントをOracle Tuxedoアプリケーションに参加させるには、対応するアプリケーション環境が必要です。Oracle Tuxedoシステムには、表14-1に示すような、環境設定用の変数が用意されています。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に渡されるパラメータ・リストの開始位置を示します。
表14-2に示すコマンドライン・オプションは、CLOPT
文字列の二重ダッシュ(--
)の後に指定できます。
注意: | CLOPT コマンドライン・オプションの詳細なリストについては、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』の「servopts(5)」を参照してください。 |
Workstationコンポーネントには、ネットワーク接続が切断されてもハング状態が無期限に続かないようにするための、WSL
用の管理オプションが用意されています。これにより、次のことを実現できます。
WSH
からのレスポンスをクライアントが待機する時間を制限できます。この時間を経過すると、WSH
との接続は切断されます(ネットワーク・タイムアウト・オプション)。
keep-aliveは、ワークステーション・ハンドラとワークステーション・クライアントの間で一定期間トラフィックが発生しなかった場合に、その接続の実行可能性を定期的にチェックするネットワーク機能です。
keep-aliveオプションをリクエストするには、UBBCONFIG
ファイルのSERVERS
セクションで、WSL
CLOPT
エントリに-K
オプションを追加します。-K
オプションは、client
、handler
、both
、またはnone
という引数を取ります。
表14-3に、keep-aliveオプションを示します。
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
エントリの詳細は、『ファイル形式、データ記述、MIBおよびシステム・プロセス・リファレンス』の「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
オプションを追加します。
リスト14-1のサンプル構成ファイルからの次の抜粋は、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
セクションが次のように変更されています。