各GWWS
サーバーは、デプロイされている各着信ネイティブWSDFのWSDLドキュメントを自動的に生成します。WSDLドキュメントは、HTTP GETを介していずれかのHTTP/Sがリスンするエンドポイントからダウンロードできます。
“http(s)://<host>:<port>/wsdl[? [id=<wsdf_name>] [&mappolicy=<pack|raw|mtom>] [&toolkit=<wls|axis>]]”
表2-1では、WSDLドキュメントのダウンロードのすべてのオプションを示します。
注意: | SALT 2.0以降でサポートされているWSDLダウンロードのURLは、SALT 1.1リリースでサポートされているURLと異なります。SALT 1.1において、1つのGWWS サーバーは、指定された構成ファイルからRPC/encoded およびdocument/literal の両方のメッセージ・スタイル、SOAP 1.1およびSOAP 1.2の両方のバージョンを適応的にサポートします。SALT 2.0以降のリリースにおいて、GWWS サーバーに関連付けられている各WSDFファイルは、特定のSOAPバージョンおよび特定のSOAPメッセージ・スタイルとあらかじめ組み合せる必要があります。したがって、SALT 1.1 GWWS サーバーの次のWSDLダウンロード・オプションはこのリリースでは非推奨になっています。 |
GWWSサーバーは、外部のWebサービス・アプリケーションとOracle Tuxedoアプリケーションとの通信に使用される、パフォーマンスに優れたゲートウェイです。スレッド・プールによる動作モデルが採用されているため、マルチプロセッサのサーバー環境において高いパフォーマンスを発揮します。GWWSサーバーは、SALT構成ファイルで<WSGateway
>要素のプロパティ値を設定することにより実行時の動作を制御するためにオプションも提供します。次のトピックでは、様々な状況に応じたデプロイメントの考慮事項を示します。詳細は、SALT構成ガイドの GWWSサーバーの構成に関する項を参照してください。
デフォルトのスレッド・プール・サイズは16ですが、大量の負荷を処理するには十分でない場合があります。平常時の稼働状況に関する分析を実施して適切なサイズ要件を見積もることをお薦めします。通常、同時使用クライアント数が多い(たとえば500を超える)場合には、少なくとも4ウェイ・プロセッサを搭載したサーバーにGWWSゲートウェイをデプロイし、スレッド・プール・サイズを64に設定することが望ましいと考えられます。
SALTでは、構成ファイルでパラメータを使用してネットワーク・タイムアウトのチューニングを提供します。デフォルトのタイムアウト値は300秒で、この値を調整するとタイムアウト・エラーの発生を抑えることができます。
SALT管理者は、クライアントから送られてくるバッファのサイズを必要に応じて制限できます。この制限を設定するには、特定のGWWSインスタンスに対して指定できるプロパティ値を使用します。デフォルトでは、制限はありません。
デフォルトのバックログ・ソケット・リスン値は20です。Windowsのようなシステムの場合、20では大量の負荷を処理するには十分でない場合があります。TCPハンドシェーク中にクライアント接続が拒否されました。
Windowsにおける推奨値は、予想される最大の同時TCP接続に基づきます。たとえば、ピークが80の場合、SALT構成ファイルでmax_backlog
プロパティの値を60に設定することができます。
注意: | ほとんどのシステムでは、デフォルトのバックログ値を変更する必要はありません。高負荷時にクライアント接続の問題が発生する場合にのみチューニングしてください。 |
警告: | バックログ値を大きくすると、syn-flood攻撃による被害のリスクが高まります。 |
SALT構成ファイルには、ネットワーク受信タイムアウトのプロパティが提供されています。Oracle Tuxedo BLOCKTIMEパラメータは、Webサービス・アプリケーションにも影響を与えます。BLOCKTIMEの計算は、メッセージがXMLから型付きバッファに変換されてOracle Tuxedoフレームワークに配信された時点で開始されます。
Webサービスの特定クライアントからBLOCKTIMEの期間内に応答がない場合、GWWSサーバーはSOAPエラーのメッセージをクライアントに送信し、接続を終了します。遅延した応答が後でGWWSサーバーに届いた場合は、該当するクライアントが既に切断されているため、そのメッセージは破棄されます。
BLOCKTIMEは、UBBCONFIGファイルの*RESOURCE
セクションに定義します。
ネットワークの混雑やCPUリソースの不足などで単一のGWWS
インスタンスがボトルネックとなった場合は、分散Oracle Tuxedoノード上に、同一のWebサービス・バインディングで複数のGWWS
インスタンスをデプロイできます。
注意: | GWWS インスタンスを複数化した場合でも論理的な機能は同じですが、クライアントから見ると、それぞれのGWWSインスタンスは異なるHTTP/Sリスン・ポートおよびアドレスに存在する別個のWebサービス・エンドポイントとなります。 |
GWWSサーバーはOracle Tuxedo TMTRACE機能を備えており、メッセージを動的にトレースできます。すべてのトレース・ポイントがULOGファイルに記録されます。ULOGファイル・トレース情報をチェックすると、GWWSサーバーでのSOAPメッセージの問題を把握しやすくなります。GWWSサーバーのメッセージ・トレースの動作は、TMTRACE環境変数またはtmadmin chtrサブコマンドを使用して設定できます。
SALTメッセージのトレースには、msgという予約済のトレース・カテゴリを使用します。これは、他の一般的なトレース・カテゴリと組み合せて使用できます。たとえば、トレース・カテゴリとして「atmi+msg」と指定すると、SALTトレース・メッセージとOracle Tuxedo ATMIトレース・メッセージの両方が記録されます。
注意: | メッセージ・トレースは、診断処置にのみ使用することをお薦めします。 |
注意: | GWWSサーバーでは、次のトリガー仕様はお薦めできません。 |
注意: | abort、system、sleep |
注意: | いずれかのトリガー仕様が使われていると、GWWSサーバーが突然終了する可能性があります。 |
tmtraceおよびトレース仕様の詳細は、「ファイル形式、データ記述方法、MIB、およびシステム・プロセスのリファレンス」の「tmtrace(5)」を参照してください。
次に、SALTメッセージのトレースに使用するTMTRACE仕様の例を示します。
リスト2-1に、SALTトレース・メッセージが含まれたULOGファイルのサンプルを示します。
183632.BOX1!GWWS.4612.4540.0: TRACE:ms:A HTTP message is received, SCO index=1023
183632. BOX1!GWWS.4612.4540.0: TRACE:ms:A SOAP message is received, SCO index=1023
183632. BOX1!GWWS.4612.4540.0: TRACE:ms:Begin data transformation of request message, buffer type = STRING, SCO index=1023
183632. BOX1!GWWS.4612.4540.0: TRACE:ms:End of data transformation of request message, buffer type = STRING, SCO index=1023
183632. BOX1!GWWS.4612.840.0: TRACE:ms:Delivering a message to Tuxedo, service name =TOUPPER, SCO index=1023
183632. BOX1!GWWS.4612.840.0: TRACE:ms:Got a message from Tuxedo, SCO index=1023
183632. BOX1!GWWS.4612.4540.0: TRACE:ms:Begin data transformation of reply message, buffer type = STRING, SCO index=1023
183632. BOX1!GWWS.4612.4540.0: TRACE:ms:End of data transformation of reply message, buffer type = STRING, SCO index=1023
183632. BOX1!GWWS.4612.4540.0: TRACE:ms:Send a http message to net, SCO index=1023
WS-ReliableMessaging通信の場合、さらに複雑なログがTMTRACE=msg:ulogで生成されます。アプリケーションおよびインフラストラクチャのすべてのメッセージはULOG
に送信されます。リスト2-2に、WS-ReliableMessaging TMTRACE
メッセージが含まれたULOG
ファイルのサンプルを示します。
184706.BOX1!GWWS.3640.4772.0: TRACE:ms:A HTTP message is received, SCO index=1023
184706.BOX1!GWWS.3640.4772.0: TRACE:ms:A HTTP Get request is received, SCO index=1023
184706.BOX1!GWWS.3640.4772.0: TRACE:ms:Send a http message to net, SCO index=1023
184710.BOX1!GWWS.3640.4772.0: TRACE:ms:A HTTP message is received, SCO index=1022
184710.BOX1!GWWS.3640.4772.0: TRACE:ms:A SOAP message is received, SCO index=1022
184710.BOX1!GWWS.3640.4772.0: TRACE:ms:Create a new inbound sequence, ID=uuid:4F1FEE40-72CB-118C-FFFFFFC0FFFFFFA8FFFFFFEB010000-1811
184710.BOX1!GWWS.3640.4772.0: TRACE:ms:Create a new outbound sequence, ID=uuid:f7f76200-f612-11da-990d-9f37c3d14ba7
184710.BOX1!GWWS.3640.4772.0: TRACE:ms:Send CreateSequenceResponse message for sequence uuid:4F1FEE40-72CB-118C-FFFFFFC0FFFFFFA8FFFFFFEB010000-1811
184710.BOX1!GWWS.3640.4772.0: TRACE:ms:Send a http message to net, SCO index=1022
184712.BOX1!GWWS.3640.3260.0: TRACE:ms:A HTTP message is received, SCO index=1022
184712.BOX1!GWWS.3640.3260.0: TRACE:ms:A SOAP message is received, SCO index=1022
184712.BOX1!GWWS.3640.3260.0: TRACE:ms:Begin data transformation of request message, buffer type = STRING, SCO index=1022
184712.BOX1!GWWS.3640.3260.0: TRACE:ms:End of data transformation of request message, buffer type = STRING, SCO index=1022
184712.BOX1!GWWS.3640.3260.0: TRACE:ms:Received a request message in sequence uuid:4F1FEE40-72CB-118C-FFFFFFC0FFFFFFA8FFFFFFEB010000-1811
ULOG
トレース情報をチェックすると、GWWSサーバーでのSOAPメッセージに関する問題についてステータスを把握しやすくなります。
GWWSサーバーは、コマンドライン・ツールであるwsadminユーティリティでモニターできます。このツールを使用して、GWWSの実行時状態を表示できます。
リスト2-3に例を示します。
$wsadmin
wsadmin - Copyright (c) 2005-2010 Oracle.
Portions * Copyright 1986-1997 RSA Data Security, Inc.
All Rights Reserved.
Distributed under license by Oracle.
SALT is a registered trademark.
> gwstats -i abcd
GWWS Instance : abcd
Inbound Statistics :
---------------------------------
Request Response Succ : 74
Request Response Fail : 32
Oneway Succ : 0
Oneway Fail : 0
Total Succ : 74
Total Fail : 32
Avg. Processing Time : 210.726 (ms)
Outbound Statistics :
---------------------------------
Request Response Succ : 0
Request Response Fail : 0
Oneway Succ : 0
Oneway Fail : 0
Total Succ : 0
Total Fail : 0
Avg. Processing Time : 0.000 (ms)
---------------------------------
Total request Pending : 0
Outbound request Pending : 0
Active Thread Number : 2
> gws -i out -s getTemp
GWWS Instance : out
Service : getTemp
Outboud Statistics :
---------------------------------
Request Response Succ : 333
Request Response Fail : 139
Avg. Processing Time : 143.064 (ms)
>
gwstats (gwsと省略)コマンドを使用すると、特定のインスタンスIDのGWWSサーバーまたはGWWSサーバー上の特定のサービスに関する統計データを表示できます。このデータには成功または失敗したリクエストの合計などが含まれています。
wsadminを実行する前に、「TUXCONFIG」および「SALTCONFIG」の両方の環境変数を設定する必要があります。wsadmin
はアクティブ・モードもアクティブでないモードもサポートしているため、Oracle Tuxedoドメインを起動しても、起動しなくてもwsadmin
を開始できます。
表2-3 wsadminのサブコマンド
GWWSサーバーを起動できない場合は、次の点をチェックします。
GWWSサーバーの機能を有効にするには、Oracleから別途ライセンスを取得する必要があります。また、ライセンスは正しくインストールされていることを確認します。
SALT構成ファイルでGWWSサーバー・リスンおよびWS-Addressingエンドポイントが正しく定義されているかをチェックします。他のアプリケーションとポートの競合が発生しないようにする必要があります。
GWWSインスタンスIDをチェックし、UBBCONFIG
およびSALTDEPLOY
ファイルで指定されている2つの名前が一致していることを確認します。
GWWSサーバーがデプロイされているコンピュータのUBBCONFIG
ファイルで、*MACHINEセクションにMAXWSCLIENTSが定義されていることを確認します。
UBBCONFIG
ファイルでGWWSサーバーにRESTART=Yが設定されている場合、REPLYQ=Yもあわせて設定する必要があります。
SALTCONFIG
ファイル バイナリ・バージョンのSALTCONFIG
ファイルが正常にコンパイルされ、GWWS
サーバーのSALTCONFIG
環境変数が正しく設定されていることを確認します。
GWWSサーバーがSOAPリクエストを受け付けないという問題が発生することがあります。一般的な原因は次のとおりです。
SOAPクライアントで使用されているWSDLドキュメントの内容が古く、一部のサービスが使用可能となっていない可能性がある。
FML/VIEWバッファを使用するOracle TuxedoサービスをWebサービスにエクスポートする場合は、関連するGWWS環境変数に有効な値が設定されていることを確認します。GWWSサーバーでは、データ・マッピング変換のためにこの情報が必要です。
SOAPクライアント・データをチェックし、Oracle Tuxedoサービス・メタデータ・リポジトリの制限が違反しないことを確認します。
WSDLドキュメントがWebサービス・クライアント・ツールキットに受け付けられない場合、次の処理を行います。