Caché での Web サービスおよび Web クライアントの作成
Caché SOAP の問題のトラブルシューティング
[Home] [Back] [Next]
InterSystems: The power behind what matters   
Class Reference   
Search:    

この章では、Caché での SOAP の問題の原因を特定する際に役に立つ情報を提供します。以下のトピックについて説明します。

明らかにセキュリティに関係する問題については、"Caché Web サービスの保護" の セキュリティの問題のトラブルシューティング を参照してください。
トラブルシューティングに必要な情報
SOAP の問題の原因を特定するには、通常、以下の情報が必要です。
また、フォルトを正しく処理して最適な情報を受け取るようにすることは非常に有効です。SOAP フォルトの処理 を参照してください。
Caché SOAP ログ
Caché ネームスペースとの間でやり取りされる SOAP 呼び出しをログに記録するには、そのネームスペースで ^ISCSOAP グローバルの次のノードを設定します。
ノード 目的
^ISCSOAP("Log") ログ記録の種類を指定します。以下の値のいずれかを使用します (大文字と小文字が区別されます)。
  • "i" — 着信メッセージをログに記録します。
  • "o" — 発信メッセージをログに記録します。
  • "s" — セキュリティ情報をログに記録します。このオプションは、SOAP フォルトに通常格納されるものよりも詳細を提供します。SOAP フォルトは、セキュリティに対する後続の攻撃を防ぐために意図的にあいまいな表現になっています。
  • "h" — ヘッダのみ (SOAP 本文なし)。"h""i" または "o" のいずれか (または両方) と共に使用する場合、ログには SOAP エンベロープ要素と SOAP ヘッダ (もしあれば) のみが含まれます。
例えば "iosh" のように、これらの値を任意に組み合わせた文字列も使用できます。
^ISCSOAP("LogFile") 作成するログ・ファイルの完全なパスとファイル名を指定します。
ログには送信者または受信者が適切に示されるので、そのやり取りにどの Web サービスまたは Web クライアントが関係しているのかを確認することができます。
次に、ログ ファイルの一部の例を示します (この例では、読みやすいように改行が追加されています)。
01/05/2010 13:27:02 *********************
Output from web client with SOAP action = http://www.mysecureapp.org/GSOAP.AddComplexSecureWS.Add
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' 
...
  <SOAP-ENV:Header>
      <Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
   
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
...
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


01/05/2010 13:27:33 *********************
Input to web client with SOAP action = http://www.mysecureapp.org/GSOAP.AddComplexSecureWS.Add

ERROR #6059: Unable to open TCP/IP socket to server localhost:8080
string
以下の点に注意してください。
CSP ゲートウェイの HTTP トレース
[CSP ウェブゲートウェイ管理] ページでは、CSP ページ (Web サービスなど) に送信した HTTP 要求と返信された応答をトレースするオプションを利用できます。"CSP ゲートウェイ構成ガイド" の HTTP トレースの表示 を参照してください。
サードパーティのトレース・ツール
Web サービスのテストには、Wireshark、ProxyTrace、tcpTrace、XMLSpy、soapUI、Web Service Studio Express などのトレース・ツールを使用できます。これらのツールには、無償で利用できるものと、ライセンスが必要なものがあります。InterSystems では、これらのツールのいずれについてもその使用を特に推奨しているわけではありません。これらのツールの情報は一般情報として提供しています。
トレース・ツールを使用すると、実際のメソッド呼び出し、および応答を確認できます。トレース・セッションは、特定のポートで待ち受けし、そのポートで受信するメッセージを表示し、それらのメッセージを宛先ポートに転送し、応答を表示し、待ち受けるポートに応答を転送します。
例えば、http://localhost:57772/csp/gsop/GSOP.Divide.CLS に Caché Web サービスがあるとします。
また、そのサービスと対話するために作成された Caché Web クライアントがあるとします。この Web クライアントの LOCATION パラメータは、"http://localhost:57772/csp/gsop/GSOP.Divide.CLS" に等しくなります。
クライアントとサービスの間のメッセージをトレースするには、以下の 2 つの操作が必要です。
これで、Web クライアントを使用するときに、トレース・ツールがクライアントと Web サービスの間のメッセージを傍受して表示するようになります。この例を次に示します。
上の部分は、クライアントによって送信される要求を示しています。下の部分は、Web サービスによって送信される応答を示しています。
WSDL を利用する際の問題
SOAP ウィザード (または、ウィザードが使用する %SOAP.WSDL.Reader クラス) を使用する際に問題が発生した場合、その問題は以下のいずれかである可能性があります。
メッセージを送信する際の問題
Caché Web サービスまたは Web クライアントと SOAP メッセージを送受信する際に問題が発生した場合、以下の一般的なシナリオのリストを検討してください。