WebSphere Application Server - Express, Version 6.0.x   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows

             目次と検索結果のパーソナライズ化

Web サービス・クライアント・ランタイムのトラブルシューティングのヒント

このトピックでは、Web サービス・クライアントのトラブルシューティングについて説明します。

このトピックの各セクションでは、Web サービス・クライアントのランタイム中に経験する可能性のある問題を取り上げます。 また、それらの問題のトラブルシューティングに役立つ解決策が 提示されています。

リモート・ホストへの接続に失敗する

リモート・ホストに接続しようとして、エラー「WSWS3713E: リモート・ホスト host_name との接続に失敗しました」が表示された場合は、以下の項目を確認してください。
  • エラー・メッセージにリストされたホスト名が正しいホスト名である場合、Web サービスのアプリケーションが実行中であり、使用可能であることを確認する必要があります。
  • エラー・メッセージにリストされたホスト名が誤ったホスト名である場合、Web サービスの WSDL ファイルの更新か、またはホスト名で使用する必要のあるエンドポイント URL のオーバーライドが必要になることがあります。 Web サービス・エンドポイント URL をオーバーライドするには、インフォメーション・センターのトピック『Web サービス・クライアント・バインディングの構成 』を参照してください。このトピックにある情報を使用して、ポート情報を構成できます。

Solaris 環境の ibm-jaxrpc-client.jar ファイルで Web サービス・クライアントを実行すると、 例外が発生することがある

Solaris 環境で Java アプリケーションを 指定する際に -jar オプション (例えば java -jar <java_application>.jar) を使用すると、 クラスが見つからないという例外が発生することがあります。 この例外を回避するには、-jar オプションではなく -classpath オプションを使用します。 以下に例を示します。
java -jar <your_client_application>.jar, <main_class_file>
.

この問題が発生するのは、Sun の JDK クラス・ロード仕様が IBM の JDK 仕様より厳密であるためです。

例外を回避するには、次の 3 つの変更のうちいずれかを実行してください。
  • -jar オプションではなく -classpath オプションを使用します。 以下に例を示します。
    java -jar <java_application>.jar, <main_class_file >
    .
  • -jar オプションと同時に -Djava.ext.dirs オプションも使用します。 以下に例を示します。
    export WAS_HOME=/opt/IBM/WebSphere/AppServer ${WAS_HOME}/java/jre/bin/java 
    -Djava.ext.dirs=${WAS_HOME}/runtimes 
    -jar <your_client_application>.jar, <your_client_application>.args
    .
  • Manifest.MF のクラスパスを、必要な Java アーカイブ (JAR) ファイルを含むように 変更します。以下に例を示します。
    Class Path: /opt/IBM/WebSphere/AppServer/runtimes/ibm-jaxrpc-client.jar 

HTTP を使用してプライベート IP アドレスに基づかない サービス・エンドポイント・インターフェースに接続する際に、DNS の解決でパフォーマンス上の問題が生じる

HTTP を使用してプライベート IP アドレスに基づかないサービス・エンドポイント・インターフェースに 接続する際に、DNS サービスが利用できないことがあります。 したがって、DNS の解決中はパフォーマンスが低下します。

この問題は、 Web サービス・エンジンのアウトバウンド HTTP コネクターがホスト・アドレス名を解決しようとして タイムアウトになった場合に起こります。

ターゲット IP アドレスの HOSTS ファイルを変更して、DNS 解決を行わないようにすることができます。

ランタイム・マイグレーション・エラー

WebSphere Application Server の 6 より 古いバージョン用に開発された Web サービス・アプリケーションをインストールすると、 以下の例外が表示されることがあります。
WSWS3701E: Error: An exception was
encountered. Use wsdeploy to deploy your application. This may correct the problem. 
The exception is <exception data>.

この例外は、6 より古いバージョンがサポートしているツールで開発された アプリケーションの実行中に問題が発生したことを示しています。 アプリケーションをアンインストールして、wsdeploy コマンドを実行後、 アプリケーションを再デプロイすることで問題は解決します。

特定の Web サービス記述言語 (WSDL) ファイルのアプリケーション・サーバー・ランタイム中に、 WebServicesFault 例外が表示される

文書体裁リテラル使用による操作を定義し、 SOAP ヘッダーを使用して入力データを送信する WSDL ファイルのアプリケーション・サーバー・ランタイム中に、 WebServicesFault 例外が表示されます。

WSDL ファイルが、文書体裁リテラル使用による操作を定義し、 この操作によって入力データを SOAP ヘッダーにマップする場合に、 Web サービス・ランタイムがターゲット・サービスについての的確な操作の検出に失敗し、 WebServicesFault 例外が表示されます。

この問題を解決するには、 その操作で、SOAP ヘッダーを使用してデータを送信する入力データがないように、 WSDL ファイルを変更します。

ConnectionIOTimeOut パラメーターの値を大きくして、 WebSphere Application Server 上で Web サービスをホスティングする際に例外を受け取ることを避ける

WebSphere Application Server 上で Web サービスをホスティングする際に、java.net.SocketTimeOutException: Read Timed Out という例外が表示される場合があります。

クライアントと Web サービス間のネットワーク接続が低速であるため、この問題が発生します。 このような場合、Web サービス・エンジンが SOAP 要求の読み取りを完了する前に、 HTTP ソケットがタイムアウトになる場合があります。この問題の原因は、ほとんどの場合、 ネットワーク全体のアクティビティーが急に増大したためです。 この問題は、クライアントが低速ネットワーク接続から Web サービスにアクセスしている場合や、 SOAP 要求のデータ量が大きい状況でも発生することがあります。

この問題を解決するには、 Web コンテナー HTTP トランスポートの ConnectionIOTimeOut パラメーターを大きくします。 デフォルト値は 5 秒です。この値を 30 秒かそれ以上に増やしてください。 管理コンソールで値を設定する方法については、 HTTP トランスポートのカスタム・プロパティーを参照してください。 以下のプロパティー名および値を入力します。
  • 名前: ConnectionIOTimeOut
  • 値: 30
Web サービスがクラスター環境でホスティングされている場合は、 クラスターの各アプリケーション・サーバーでこのプロパティーを設定します。 アプリケーション・サーバーが複数のポート番号上で listen している場合は、 すべてのポートでこのプロパティーを設定します。

セッション・パーシスタンスをオンにして Web サービス・クライアント・アプリケーションを実行するか、クラスター環境で Web サービス・クライアント・アプリケーションを実行すると、WebServicesFault エラーが生じる場合がある

セッション・パーシスタンスをオンにして Web サービス・クライアント・アプリケーションを実行するか、クラスター環境で Web サービス・クライアント・アプリケーションを実行すると、 HTTP サーバーによってクローズされた接続を Web サービス・クライアントが使用しようとするため、エラーが表示されることがあります。 以下に、このエラーの例を示します。
[mm/dd/yy hh:mm:ss:ttt EST] 0000006e SystemErr     R WebServicesFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
 faultString: java.io.IOException: Connection close: Read failed.Possible end of 
stream encountered. 
 faultActor: null
 faultDetail:
このエラーは、次の 2 つの方法のどちらかを実行して回避することができます。
  • com.ibm.websphere.webservices.http.requestResendEnabled プロパティーを true に設定します。例えば、com.ibm.websphere.webservices.http.requestResendEnabled=true とします。このプロパティーを true に設定すると、Web サービス・クライアントは要求が失敗した場合にその要求を再送するようにプログラムされます。 要求が 2 回送信される場合があるため、プロパティー値を変更する場合はクライアントのランタイムをモニターします。

    例えば、クライアントが銀行用アプリケーションで、com.ibm.websphere.webservices.http.requestResendEnabled プロパティーを true に設定してある場合、トランザクションが口座に 2 回記入される場合があります。 管理コンソールの JVM カスタム・プロパティー・パネルを使用した追加の HTTP トランスポート・プロパティーの構成を参照して、com.ibm.websphere.webservices.http.requestResendEnabled プロパティーを構成します。

  • [Linux] AIX または Linux オペレーティング・システム上で IBM HTTP Server を使用する場合、 MaxSpareThreads プロパティーを、httpd.conf ファイルにある MaxClients プロパティーと同じ値に設定することができます。 例えば MaxClients=600 の場合、MaxSpareThreads を 600 (MaxSpareThreads=600) に変更します。

    エラーを避けるためにこの方法を選択する利点は、IBM HTTP Server が アイドル接続またはアイドル接続に近い接続をシャットダウンしないことです。 この選択の欠点は、軽いアクティビティーの期間でも、IBM HTTP Server は利用可能な余分なスレッドを維持するために過剰なリソースを使用することです。 この方法は、AIX または Linux オペレーティング・システムでのみ選択することができます。




関連タスク
Web サービスのトラブルシューティング
関連情報
Web サービス: 学習用リソース
Web サービス・クライアントの開発とデプロイ
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 11:31:28 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rwbs_trbclientruntime.html