メッセージングのトラブルシューティングのヒント

以下のヒントは、ご使用の WebSphere® メッセージング構成のトラブルシューティングに役立てることができます。

注: このトピックでは、 1 つ以上のアプリケーション・サーバー・ログ・ファイルを参照します。推奨される代替案として、分散システムや IBM® i システムの SystemOut.logSystemErr.logtrace.logactivity.log ファイルではなく、High Performance Extensible Logging (HPEL) ログおよびトレース・インフラストラクチャーを使用するようにサーバーを構成できます。また HPEL は、ネイティブ z/OS® ロギング機能と連携させて使用することができます。HPEL を使用する場合、LogViewer コマンド・ライン・ツールを サーバー・プロファイルの bin ディレクトリーから使用して、すべてのログ・ファイルにアクセスし、 情報をトレースできます。HPEL の使用について詳しくは、HPEL を使用してのアプリケーションの トラブルシューティングに関する情報を参照してください。

[IBM i][AIX Solaris HP-UX Linux Windows]メッセージングの問題を特定および解決するために、WebSphere Application Server トレース機能とロギング機能を使用できます。

[z/OS]メッセージングの問題を特定および解決するために、WebSphere Application Server トレース機能とロギング機能を使用できます。これらの機能について詳しくは、『コンポーネント・トレース (CTRACE) の設定』を参照してください。

WebSphere Application Server のメッセージング機能を使用するアプリケーションのデプロイまたは実行の際に問題が発生する場合は、以下のトピックを参照してください。

WebSphere Application Server のメッセージおよびログに IBM MQ のエラー・メッセージまたは理由コードがある場合は、IBM MQ インフォメーション・センターで『メッセージ』のセクションを参照してください。

問題の診断および修正: 学習用リソース』のリンクを使用して、問題が特定され、文書化されているかどうかを確認してください。

以下に、一般的に起こる問題のトラブルシューティングに役立つ一連のヒントを示します。 類似した問題が見つからない場合や、提供されている情報では問題が解決されない場合は、IBM サポートに連絡してください。

WebSphere MQ リソース・アダプター構成が自動的に更新されないため、手動での保守が必要になる

通常、WebSphere Application Server のフィックスパックを適用すると、IBM MQ リソース・アダプターは自動的に更新されます。ただし、ご使用の環境内にある一部のノードで IBM MQ リソース・アダプターを手動で更新していた場合、フィックスパックを適用しても、それらのノードのサーバーで使用されるリソース・アダプターは自動的に更新されません。

この問題を解決するには、IBM MQ リソース・アダプターの保守を参照してください。

フィックスパックのインストール時に java.lang.ClassNotFoundException 例外が発生する

フィックスパックをインストールするときに 次のメッセージが出される場合、 IBM MQ リソース・アダプターの保守に記述された指示に従って、問題の解決を試みてください。
J2CA0043E: An exception occurred while trying to instantiate a ResourceAdapter
JavaBean instance for the installed ResourceAdapter defined by key #removed#

WebSphere MQ for z/OS からのメッセージは JMS アプリケーションによって消費されない

WebSphere Application Server にデプロイされている JMS アプリケーション、および接続ファクトリーまたはアクティベーション・スペックを使用している JMS アプリケーションが、WebSphere MQ for z/OS からのメッセージを消費しない

JMS アプリケーションがメッセージを送受信できなくなった

デフォルト・メッセージング・プロバイダーを使用するようにアプリケーションを構成する場合は、そのアプリケーションを次のいずれかのリソース・セットに関連付けます。
  • Java™ Message Service (JMS) のアクティベーション・スペックを使用して接続する 1 つ以上のメッセージ Bean。
  • JMS 接続ファクトリーおよび JMS 宛先を使用して接続されている 1 つ以上のエンタープライズ Bean。
この問題の解決に役立てるために、以下の管理コンソール・パネルを使用して、アプリケーションおよび JMS リソースの構成を検査することができます。

MDB リスナーが始動に失敗する

リスナー・ポートに対してデプロイされた MDB リスナーが始動に失敗する 場合は、次のメッセージを調べる必要があります。
WMSG0019E: MDB Listener {0}、JMSDestination {1} を開始できません: {2} 
この問題を解決するには、以下の要因を検査してください。
  • 管理リソースが正しく構成されていることを確認します。 例えば、管理コンソールを使用してリスナー・ポート・プロパティーの、 宛先 JNDI 名および接続ファクトリー JNDI 名を確認します。リスナー・ポート、宛先、および接続ファクトリーの他のプロパティーが正しいことを確認します。
  • キューが存在して JMS サーバーに追加済みであることを確認します。
  • キュー・マネージャーおよび JMS サーバーが始動済みであることを確認します。
  • リモート・キュー・マネージャー・リスナーが始動済みであることを確認します。
  • [AIX Solaris HP-UX Linux Windows][IBM i]セキュリティーが使用可能である場合は、コンポーネント管理認証別名が、メッセージ駆動型 Bean によって使用されるキュー接続ファクトリーま たはトピック接続ファクトリーに対して指定済みであることを確認します。[z/OS]セキュリティーが使用可能である場合は、MDB リスナーの始動に使用されるユーザー ID が適切に許可されていることを確認します。 詳しくは、セキュリティーを使用可能にして JMS アプリケーションを実行する際の問題を参照してください。

セキュリティーを使用可能にして JMS アプリケーションを実行する際の問題

セキュリティーを使用可能にして JMS アプリケーションを実行しようとする際に、 以下のエラー・メッセージのうちの 1 つまたは複数によって示される認証問題が発生することがあります。
WMSG0019E: Unable to start MDB Listener PSSampleMDB, JMSDestination Sample/JMS/listen : 
javax.jms.JMSSecurityException:
この例は、提供されたセキュリティー・クレデンシャルが無効であることを示しています。
この問題を解決するには、セキュリティー構成を検査してください。
  • 認証メカニズムが「Application」に設定されている場合は、 アプリケーションによって有効なクレデンシャルを提供する必要があります。
  • 認証メカニズムが「Container」に設定されている場合は、コンテナー管理認証別名を持つ JMS 接続ファクトリーを構成して、関連したユーザー ID およびパスワードが有効になるようにする必要があります。 [z/OS]あるいは、bindings トランスポート・モードで実行している場合は、コネクター・スレッド ID サポートを使用することもできます。
[AIX Solaris HP-UX Linux Windows][IBM i]
MQJMS2013 invalid security authentication supplied for MQQueueManager:
IBM MQ を JMS プロバイダーとして使用し、JMS 接続でバインディング・トランスポート・モードを使用していて、指定されたユーザーが WebSphere Application Server プロセスの現在のログオン・ユーザーでない場合は IBM MQ による JMS バインディング認証によって、セキュリティー認証無効エラーが生成されます。
この問題を解決するには、セキュリティー構成を検査してください。バインディング・トランスポート・モードを使用するように IBM MQ JMS プロバイダーを構成する場合、IBM MQ キュー接続ファクトリーで「トランスポート・タイプ」プロパティーを BINDINGS に設定します。このときに、さらに次のオプションのいずれか 1 つを選択する必要があります。
  • セキュリティー・クレデンシャルを使用する。これを選択するには、WebSphere Application Server プロセスの現行ログオン・ユーザーをユーザーとして指定する必要があります。
  • セキュリティー資格認定を使用しない。IBM MQ 接続ファクトリーで、「コンポーネント管理認証別名」プロパティーと「コンテナー管理認証別名」プロパティーが設定されていないことを確認してください。

メッセージング・セキュリティーについて詳しくは、 メッセージングの保護を参照してください。

[AIX Solaris HP-UX Linux Windows]

Solaris で zh_TW.EUC ロケールが設定されている場合にアプリケーション・サーバーが開始しない

Solaris で、ロケールを zh_TW.EUC に設定し、JMS プロバイダーとして IBM MQ を使用する場合、アプリケーション・サーバーが開始しないことがあります。

この問題を解決するには、LANG および LC_ALL 変数を zh_TW に設定してください。

JMS メッセージ処理中のサーバー・メモリー使用量および java.lang.OutOfMemoryError 例外

デフォルト・メッセージング・プロバイダーを使用する場合、JMS メッセージはアプリケーション・サーバー・プロセス内のメッセージング・エンジンによって処理されます。 このアプローチでは、アプリケーション・サーバーの JVM ヒープのメモリーが消費されます。大規模なメッセージが並行して処理されていて、JVM ヒープで使用できるメモリーの量がこのイベントを処理するために十分でない場合、java.lang.OutOfMemoryError 例外がスローされ、アプリケーション・サーバーは終了します。

この問題を解決するには、並行プロセッサー、またはメッセージのコンシューマーの潜在的な数、およびメッセージ・サイズを見積もってから、この影響に対処するのに必要となる、アプリケーション・サーバーの JVM ヒープのサイズを設定しなければなりません。 以下に例を示します。
  1. メッセージを並行処理するメッセージ駆動型 Bean をデプロイするときに、並行エンドポイントによるアプリケーション・サーバーのメモリーの潜在的な使用量を見積もる必要があります。 メッセージ要求を並行処理している各エンドポイントは、少なくともメッセージ・サイズの 2 倍をサーバーの JVM ヒープに追加し、特に 2 フェーズ・トランザクションが行われる場合は、それ以上を追加することができます。
  2. WebSphere Application Server 管理コンソールを開始します。
  3. 「サーバー」 > 「サーバー・タイプ」 > 「WebSphere Application Server」 > server_name > 「Java およびプロセス管理」 > 「プロセス定義」 > 「Java 仮想マシン」とナビゲートし、「初期ヒープ・サイズ」プロパティーと「最大ヒープ・サイズ」プロパティーを設定して、アプリケーション・サーバーの JVM ヒープで使用できるメモリーの量を構成します。
  4. 「リソース」 > 「JMS」 > 「JMS プロバイダー」 > 「デフォルト・メッセージング・プロバイダー」 > 「アクティベーション・スペック」 > activation_specification_nameとナビゲートし、このメッセージ駆動型 Bean 用のアクティベーション・スペックの「最大並行エンドポイント数プロパティーを設定して、メッセージを処理可能な並行 MDB エンドポイントの数を構成します。

TopicConnectionFactory attributes clash エラー

IBM MQ メッセージング・プロバイダーを使用する JMS トピック・サブスクライバーを作成するときに、SystemOut.log ファイル内に以下のエラー・メッセージが発生することがある。
WSVR0017E: Error encountered binding the J2EE resource, TopicConnectionFactory, as <JNDI_NAME>
   from file:<RESOURCES_FILE> com.ibm.ws.runtime.component.binder.ResourceBindingException: invalid
   configuration passed to resource binding logic. REASON: Failed to create connection factory:
   Error raised constructing AdminObject, error code:  TopicConnectionFactory attributes clash  : 
   TopicConnectionFactory attributes clash 

この問題は、サブスクライバーを作成するために使用された JMS トピック接続ファクトリーの構成で、ブローカー・バージョンとして「基本」が指定され、メッセージ選択値として「ブローカー」が指定されている場合に発生します。「基本」の IBM MQ ブローカー (MA0C SupportPac ブローカー) では、「ブローカー」メッセージ選択はサポートされません。

この問題を解決するには、JMS トピック接続ファクトリーを変更してメッセージ選択値「クライアント」を指定します。これが、 IBM MQ 基本ブローカー (MA0C SupportPac ブローカー) でサポートされる唯一の値です。

「WSEC5061E: SOAP 本文に署名がありません。」例外

IBM MQ メッセージング・プロバイダーで、JMS トランスポートを使用する保護された Web サービス・アプリケーションを実行すると、SystemOut.log ファイル内に以下のエラー・メッセージが発生することがあります。
com.ibm.wsspi.wssecurity.SoapSecurityException: WSEC5061E: The SOAP Body is not signed.; null
この問題は、次の環境で発生します。
  • Web Services Security を使用して構成された Web サービス・アプリケーションが、WebSphere Application Server セキュリティーが使用可能になっているアプリケーション・サーバーで実行されている。
  • この Web サービス・アプリケーションが、JMS トランスポートを使用して SOAP 要求をターゲット Web サービスに送信する。
  • JMS リソースがリモート IBM MQ サーバーを使用して IBM MQ キューに接続する。
  • 同じ IBM MQ サーバーを介して同じキューを使用するように構成された、もう 1 つの同じ Web サービス・アプリケーションが、WebSphere Application Server セキュリティーが使用可能になっていない別のアプリケーション・サーバーで実行されている。

この問題は、元のアプリケーションから送信される要求が同じキューを経由するが、 セキュリティーが使用可能になっていない別のアプリケーション・サーバーに送られる場合に発生します。

この問題を解決するには、以下を行います。
  1. IBM MQ サーバーで、固有のポートを使用する固有のキュー・マネージャーを作成します。
  2. 新規キュー・マネージャーとポートを使用するように、JMS リソースを再構成します。例えば、IBM MQ メッセージング・プロバイダーのキュー接続ファクトリーの構成の説明に従って、WebSphere Application Server 管理コンソールを使用し、IBM MQ キュー接続ファクトリーのプロパティーを変更します。
  3. アプリケーションを再実行します。

IBM MQ を外部 JMS プロバイダーとして使用するとエラーが発生する

IBM MQ を外部 JMS プロバイダーとして使用し、ユーザー管理トランザクション内でメッセージを IBM MQ キューに送信する場合、トランザクションがコミットする前にメッセージが宛先キューに到着する場合があります。この問題は、IBM MQ リソース・マネージャーがユーザー管理トランザクションに含まれていない場合に発生します。

この問題を解決するには、コンテナー管理トランザクションを使用してください。

[AIX Solaris HP-UX Linux Windows][IBM i]

javax.jms.JMSException: MQJMS3024: unable to start MDB listener

このエラーは、未初期化クライアント ID (永続サブスクリプションに関連付けられていないクライアント ID) を使用している場合に発生する可能性があります。 この問題を解決するには、クライアント ID を以下の 3 つのうちのいずれかの方法で設定します。
  • jmsadmin ツールを使用して、クライアント ID を tcf のプロパティーとして設定する。例えば、tcf(myTCF) clientid(myID) を変更します。
  • TopicConnection.setClientID() を使用して、クライアント ID をプログラマチックに設定する。
  • 管理コンソールを使用して IBM MQ メッセージング・プロバイダーのトピック接続ファクトリー設定 を変更して、クライアント ID フィールドを管理的手法で設定する。
[z/OS]

サーバー始動時に WebSphere MQ メッセージング・プロバイダーのチャネル・フレームワーク・メッセージが表示される

後続の再試行で接続が成功する場合でも、サーバー開始時に、制御領域従属プロセス中に以下のメッセージが数回表示される ことがあります。このメッセージは、 z/OS TCP プロキシー・チャネル が非同期に開始することが原因で発行され、エラーが発生したことを示しているのではありません。

Trace: 2009/06/17 08:24:41.434 01 t=9C6B58 c=UNK key=P8 (00000011)
Description: Log Java Message
Message: CHFW0030E: Error starting chain _InboundTCPProxyBridgeService because 
of exception com.ibm.wsspi.channel.framework.exception.RetryableChannelException: 
An exception was thrown when attempting to start the TCPProxyChannel
com.ibm.ws.channel.framework.imp l.ChannelFrameworkImpl
これらのメッセージには、以下の例に似た First Failure Data Capture (FFDC) 出力が伴う場合があります。
Exception = com.ibm.wsspi.channel.framework.exception.RetryableChannelException
Source = com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChainInternal
probeid = 2577
Stack Dump = com.ibm.wsspi.channel.framework.exception.RetryableChannelException: 
An exception was thrown when attempting to start the TCPProxyChannel
        at com.ibm.ws.tcpchannelproxy.jfap.impl.TCPProxyInboundChannel.start(TCPProxyInboundChannel.java:153)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChannelInChain(ChannelFrameworkImpl.java:1410)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChainInternal(ChannelFrameworkImpl.java:2863)
        at com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl.startChainInternal(WSChannelFrameworkImpl.java:960)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChainInternal(ChannelFrameworkImpl.java:2794)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChain(ChannelFrameworkImpl.java:2779)
        at com.ibm.ws.runtime.component.ChannelFrameworkServiceImpl.startChain(ChannelFrameworkServiceImpl.java:666)
        at com.ibm.ws.sib.jfapchannel.framework.impl.ChannelFrameworkReference$TCPProxy
BridgeServiceInboundChainStartupRunnable.run(ChannelFrameworkReference.java:1641)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550)
Caused by: com.ibm.ws.tcpchannelproxy.jfap.NotYetInitializedException: Server is not yet initialized
        at com.ibm.ws.tcpchannelproxy.jfap.TCPProxyBridgeServicesImpl.startListening(TCPProxyBridgeServicesImpl.java:558)
        at com.ibm.ws.tcpchannelproxy.jfap.impl.TCPProxyInboundChannel.start(TCPProxyInboundChannel.java:131)
        ... 8 more
最終的に、 z/OS TCP プロキシー・チャネル が正しく開始したことを示す以下のメッセージが表示されます。
Trace: 2009/06/17 08:24:51.449 01 t=9C6B58 c=UNK key=P8 (13007002)
   ThreadId: 00000003
   FunctionName: com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl
   SourceId: com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl
   Category: AUDIT
   ExtendedMessage: BBOO0222I: CHFW0019I: The Transport Channel Service has started
chain _InboundTCPProxyBridgeService.

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rmj_prob0
ファイル名:rmj_prob0.html