WS-ReliableMessaging トラブルシューティングのヒント
ご使用の WS-ReliableMessaging 構成のトラブルシューティングのヒントです。
WS-ReliableMessaging の問題を特定および解決するために、WebSphere® Application Server トレース機能とロギング機能を使用できます。 Eclipse ベースのツールを使用している場合には、 Eclipse の TCP/IP モニターを使用して、クライアント・アプリケーションと高信頼性メッセージング対応 Web サービスの間を流れるメッセージを表示することも可能です。
- どちらかの管理対象サービス品質の場合:
org.apache.sandesha2*=all=enabled:com.ibm.ws.websvcs.rm*=all=enabled:org.apache.axis2*=all=enabled:com.ibm.ws.sib.wsrm*=all=enabled
- 管理対象外の非パーシスタントのサービス品質の場合:
org.apache.sandesha2*=all=enabled:com.ibm.ws.websvcs.rm*=all=enabled:org.apache.axis2*=all=enabled
WS-ReliableMessaging を使用している際に適用する主な既知の制約事項のリストは、WS-ReliableMessaging の既知の制約事項に提供されています。
WebSphere Application Server システム・メッセージは、 アプリケーション・サーバー・コンポーネントやアプリケーションなど、さまざまなソースからログに記録されます。 アプリケーション・サーバー・コンポーネントによって記録され、IBM 製品に関連したメッセージは、メッセージを発行したコンポーネントまたはアプリケーションを示す固有のメッセージ ID で始まります。WS-ReliableMessaging コンポーネントの接頭部は、CWSKA です。
トピック『トラブルシューター・リファレンス: メッセージ』には、メッセージ接頭語を索引にして、すべての WebSphere Application Server メッセージに関する情報が記載されています。それぞれのメッセージごとに問題の説明、および問題を解決するために取ることのできるアクションの詳細が記載されています。
- シーケンスが再割り当てされると、予想よりも多くのシーケンスが表示される場合がある
高信頼性メッセージングをクラスター上で実行している状態で、インバウンドまたはアウトバウンドのシーケンスのランタイム状態を調べると、シーケンスごとに複数のエントリーが表示されます
インバウンドまたはアウトバウンドのシーケンスのランタイム状態を調べると、シーケンスごとに複数のエントリーが表示される場合があります
- WS-ReliableMessaging 持続メッセージをバージョン 6.1.0.9 または 6.1.0.11 からマイグレーションすると、ランタイム・エラーが発生する
- アプリケーション・サーバーの始動時に、高信頼性メッセージングに使用されるメッセージング・エンジンが使用不可として報告される
- クライアント・アプリケーションが、高信頼性メッセージング対応 Web サービスを呼び出すことができない
- シーケンスが確立されていないため、WS-ReliableMessaging がメッセージの送信を確認できない
- シーケンスは確立されているが使用できないため、WS-ReliableMessaging がメッセージの送信を確認できない
- ポリシー・セットのバインディングが不完全であるかまたは無効なため、高信頼性メッセージング管理対象ストアが初期化されない
- サーバーが使用できないため、高信頼性メッセージングが中断される
- クラスター内で信頼できる複数のメッセージング・クライアント・アプリケーションを実行する際、ソケット・タイムアウト・エラーを受け取る
- サーバーが使用できなくなった後にメッセージが回復されない
- セキュリティー・コンテキスト・トークンが無効であるという例外メッセージが表示される
管理対象サービス品質を 使用しているときに、サーバント領域でタイムアウト異常終了が起こること があります。
シーケンスが再割り当てされると、予想よりも多くのシーケンスが表示される場合がある
インバウンド・シーケンスまたはアウトバウンド・シーケンスの ランタイム状態を検査するとき、シーケンス再割り当てが原因で、シーケンスの数が予想よりも多くなる場合が ある
シーケンスが再割り当てされると、元のシーケンスと新しいシーケンスの両方が表示されます。多重エントリーを 無視してください。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
高信頼性メッセージングをクラスター上で実行している状態で、インバウンドまたはアウトバウンドのシーケンスのランタイム状態を調べると、シーケンスごとに複数のエントリーが表示されます
これは、高信頼性メッセージングがクラスター内の 1 つのメッセージング・エンジンにのみバインドするが、ランタイム・パネルではクラスター・メンバーごとに 1 回ずつシーケンス情報が算出され表示されるためです。 重複しているエントリーを無視します。 各重複エントリーで表示される統計上のわずかな違いは、メッセージのポーリングが継続して行われている間に、エントリーが順次作成されるために生じます。
![[z/OS]](../images/ngzos.gif)
インバウンドまたはアウトバウンドのシーケンスのランタイム状態を調べると、シーケンスごとに複数のエントリーが表示される場合があります
これは、高信頼性メッセージングが 1 つのメッセージング・エンジンにのみバインドするが、ランタイム・パネルではサーバント領域ごとに 1 回ずつシーケンス情報が算出され表示されるためです。 重複しているエントリーを無視します。 各重複エントリーで表示される統計上のわずかな違いは、メッセージのポーリングが継続して行われている間に、エントリーが順次作成されるために生じます。
WS-ReliableMessaging 持続メッセージをバージョン 6.1.0.9 または 6.1.0.11 からマイグレーションすると、ランタイム・エラーが発生する
WebSphere Application Server バージョン 6.1 から移行する際に、Feature Pack for Web Services バージョン 6.1.0.9 または 6.1.0.11 を使用している状態で、管理対象パーシスタントのサービス品質用に WS-ReliableMessaging が構成されている場合は、持続メッセージをすべて除去してから移行する必要があります。
- 高信頼性メッセージング・アプリケーションの インバウンド・シーケンス・コレクションランタイム・パネルに移動します。
- インバウンド・シーケンスをすべて選択してから、「シーケンスおよびメッセージの削除」をクリックしてシーケンスを削除します。
- アウトバウンド・シーケンス・コレクション ランタイム・パネルに移動して、アウトバウンド・シーケンスについて、前述の手順を繰り返します。
アプリケーション・サーバーの始動時に、高信頼性メッセージングに使用されるメッセージング・エンジンが使用不可として報告される
管理されたサービス品質を備えた高信頼性のメッセージングを使用する場合、アプリケーション・サーバーの始動時に以下の例外メッセージが表示されることがあります。
CWSIT0019E: No suitable messaging engine is available on bus yourBus that matched the specified connection properties
Network Deployment 環境では、メッセージング・エンジンが、 高信頼性メッセージング・アプリケーションをホストしているサーバーより遅く始動したアプリケーション・サーバー またはクラスター・メンバー上にあるために、このエラーが発生することがあります。この場合、待機するしかありません。高信頼性メッセージングが、メッセージング・エンジンが使用可能になるまで接続を試み続けます。
- 指定したメッセージング・エンジンおよびサービス統合バスが存在していることを確認してください。
- システム出力ログをチェックして、メッセージング・エンジンをホストするサーバーが始動していることを確認します。
クライアント・アプリケーションが、高信頼性メッセージング対応 Web サービスを呼び出すことができない
- エンドポイントが使用可能である。
- サービスが実行中である。
- サービスが既に呼び出し済みである。
- WS-ReliableMessaging が実行中である。
- WS-ReliableMessaging が正しく構成されている。特に、 いずれかの管理対象サービス品質については、サービス統合バスおよびメッセージング・エンジンに 対して有効なバインディングを構成済みであること、およびメッセージング・エンジンが実行中であることを確認してください。 詳しくは、管理コンソールを使用した Web サービス・アプリケーションへの WS-ReliableMessaging ポリシー・セットの関連付けおよびバインディングまたはwsadmin ツールを使用した Web サービス・アプリケーションへの WS-ReliableMessaging ポリシー・セットの関連付けおよびバインディングを参照してください。
- 単一メッセージング・エンジンを共有しているアプリケーションが多すぎない。注: 多数のアプリケーションが同じメッセージング・エンジンを使用すると、パフォーマンスに影響を与える可能性があります。考慮すべき要因としては、メッセージング・エンジンに既にバインドされている アプリケーションの数、CPU 使用率、およびメッセージのスループットなどがあります。 単一サーバー構成のパフォーマンスを向上させるには、 新しいメッセージング・エンジンを作成し、アプリケーションにバインドします。
シーケンスが確立されていないため、WS-ReliableMessaging がメッセージの送信を確認できない
シーケンスが確立すると、WS-ReliableMessaging によってメッセージがサービスに再送信されます。 ただし、シーケンスが確立されていない場合、メッセージはサービスに送信されず、 以下の例と同様のメッセージが表示されます。
org.apache.axis2.AxisFault: シーケンスの要求作成は RM 宛先により拒否されました
初期 createSequence メッセージは拒否されました。これが伝搬し直されて、 クライアントの障害を引き起こします。CreateSequence および CreateSequenceRefused について詳しくは、WS-ReliableMessaging: サポートされる仕様と標準を参照してください。
要求が拒否された理由を説明するのに役立つメッセージが続いて表示されることもあります。 以下に例を示します。
原因: javax.xml.ws.soap.SOAPFaultException: com.ibm.ws.sib.wsrm.exceptions.WSRMRuntimeException:
CWSJZ0202I: バス myBus のメッセージング・エンジン接続が使用できません
.- ポリシー・セットが正しく適用されていることを確認します。特に、宛先で、 高信頼性メッセージングを正しく有効にしてあることを確認します。
- サーバー・サイド問題のログを確認します。
- 管理対象パーシスタントのサービス品質の場合、関連するメッセージング・エンジンが使用可能であることを確認します。
シーケンスは確立されているが使用できないため、WS-ReliableMessaging がメッセージの送信を確認できない
以下のような例外が表示された場合、シーケンスは設定されていますが、使用できません。
javax.xml.ws.WebServiceException: org.apache.axis2.AxisFault: wsrm:Identifier の値が既知のシーケンス ID ではありません
.一般的にもっとも可能性が高い理由は、 ユーザーはクラスター化された環境で作業をしているのに、サーバー・サイドの ポリシー・セットが管理対象外の非パーシスタントのサービス品質を指定していることです。 例えば、WS-I RSP デフォルト・ポリシー・セットは管理対象外の非パーシスタントのサービス品質を指定します。 クラスター化された環境で高信頼性非同期メッセージングを使用するには、 管理対象サービス品質を使用して、相関する高信頼性メッセージングの状態へ のクラスター・メンバーを使用可能にする必要があります。 この操作を行う場合は、WS-I RSP ND デフォルト・ポリシー・セットを使用するか、あるいはご使用のカスタム・ポリシーを変更して、WS-ReliableMessaging ポリシーで管理対象のサービス品質を指定し、サービス統合バスおよびメッセージング・エンジンに対する関連バインディングを指定するようにしてください。 これを行う方法について詳しくは、 管理コンソールを使用した WS-ReliableMessaging ポリシー・セットの構成および管理コンソールを使用した Web サービス・アプリケーションへの WS-ReliableMessaging ポリシー・セットの関連付けおよびバインディングを参照してください。
ポリシー・セットのバインディングが不完全であるかまたは無効なため、高信頼性メッセージング管理対象ストアが初期化されない
ご使用のポリシー・セットが管理対象サービス品質を指定しているのに、 ユーザーがそのサービス品質をサポートするメッセージ・エンジンのバインディングを指定していない場合、 以下の例外メッセージが表示されます。
CWSKA0102E: ポリシー・セットのバインディングが不完全であるかまたは無効なため、管理対象 Web サービスの高信頼性メッセージング・ストレージ・マネージャーを初期化できませんでした (The managed web services reliable messaging storage manager could not be initialized because the policy set binding
was incomplete or invalid)
.管理対象ポリシー・セットをアプリケーションに関連付けて、(管理対象サービス品質をサポートしていない) デフォルトのバインディングを使用している可能性があります。 サービス統合バスおよびメッセージング・エンジンを指定するアプリケーション用に新規バインディングを作成して、 管理対象サービス品質をサポートする必要があります。 これを行うには、管理コンソールを使用した Web サービス・アプリケーションへの WS-ReliableMessaging ポリシー・セットの関連付けおよびバインディングを参照してください。
サーバーが使用できないため、高信頼性メッセージングが中断される
クラスター化は、使用できなくなるサーバーに対して最大限の保護を提供します。 クラスター化により、HA サービス・エンドポイントが提供され、また (サービス統合バスを通して) HA のある高信頼性メッセージング層が提供されます。
Web サービスおよびメッセージング・エンジン用の HA の構成について詳しくは、ワークロードのバランシングおよびクラスターへのメッセージング・エンジンの追加を参照してください。
クラスター内で信頼できる複数のメッセージング・クライアント・アプリケーションを実行する際、ソケット・タイムアウト・エラーを受け取る
多くのアプリケーションが同一のメッセージング・エンジンを使用すると、パフォーマンスに影響を与え、タイムアウト・エラーを引き起こす場合があります。
Web サービスおよびメッセージング・エンジン用の HA の構成について詳しくは、ワークロードのバランシングおよびクラスターへのメッセージング・エンジンの追加を参照してください。
サーバーが使用できなくなった後にメッセージが回復されない
高信頼性メッセージング層は、要求メッセージを受信すると、 肯定応答を送信し、次にそのメッセージをターゲット・サービスに配信します。 要求メッセージが応答された後で、配信が行われる前に、高信頼性メッセージング層をホスティングしているサーバーが使用できなくなる可能性がわずかにあります。 この場合、管理対象パーシスタントのサービス品質を使用しているだけでなく、 順序正しい配信を使用している場合のみ、メッセージは回復されます。順序正しい配信を指定するには、WS-ReliableMessaging ポリシーの構成に説明されているとおり、WS-ReliableMessaging ポリシー・オプションで「メッセージを送信順に配信する」を選択します。
セキュリティー・コンテキスト・トークンが無効であるという例外メッセージが表示される
高信頼性メッセージングをパーシスタント WS-I RSP プロファイル および WS-SecureConversation とともに使用すると、セキュリティー・コンテキスト・トークンが無効であるという 例外メッセージが表示される。
CWWSS7215E: Cannot get valid security context token from the cache.
WS-ReliableMessaging が復旧してメッセージを再送信するまでに、範囲セキュリティー・コンテキスト・トークンの有効期限が切れないようにするために、以下のタスクを完了してください。WS-ReliableMessaging を使用できるように WS-SecureConversation を構成する。
![[z/OS]](../images/ngzos.gif)
管理対象サービス品質を 使用しているときに、サーバント領域でタイムアウト異常終了が起こること があります。
タイムアウト異常終了は、 sib.wsrm.tokenLockTimeout カスタム・プロパティーの設定値が大きすぎることが原因で起こることがあります。 このプロパティーは、WS-ReliableMessaging ポリシー・バインディングに指定される メッセージング・エンジンに設定されます。この値は、 非アクティブなサーバント領域を制御領域が終了するまでの待機時間よりも 小さい値である必要があります。このプロパティーについての詳細は、 サービス統合のカスタム・プロパティートピックを参照してください。