8 JMS統計のモニターとメッセージの管理
Weblogic JMSでは、高度な実行時統計機能でWebLogicドメイン内のJMSサーバーや宛先リソースをモニターして、問題がないかどうかを確認できます。問題があれば、プロファイリングによって、問題の原因となっているアプリケーションを判断できます。アプリケーションを絞り込んだら、JMSデバッグ機能を使用して、そのアプリケーション内の問題点を突き止めます。
JMS診断通知、デバッグ・オプション、メッセージ・ライフ・サイクルのロギング、およびJMS宛先でのメッセージ処理の制御を構成する方法については、「WebLogic JMSのトラブルシューティング」を参照してください。
このリリースに含まれるメッセージ管理ツールでは、WebLogicリモート・コンソールまたは新しいパブリック・ランタイムAPIを使用して、すべてのメッセージを表示および参照したり、稼働中のJMSサーバーでほとんどのメッセージを操作したりする機能が強化されています。これらのメッセージ管理機能には、トランザクション管理、恒久サブスクライバの管理、JMSクライアント接続の管理に加えて、メッセージの表示(ソート用)、メッセージの操作(作成、移動、削除など)、メッセージのインポートとエクスポートなどがあります。
WebLogic診断サービスの詳細は、『Oracle WebLogic Server診断フレームワークの構成と使用』を参照してください。
この章の内容は次のとおりです。
- JMS統計のモニター
WebLogic JMSを構成すると、アプリケーションでJMS APIを使用してメッセージの送受信ができるようになります。 - JMSメッセージの管理
WebLogic JMSメッセージのモニター機能と管理機能を使用すると、新しいメッセージの作成、選択したメッセージの削除、別のキューへのメッセージの移動、別のファイルへのメッセージ・コンテンツのエクスポート、別のファイルからのメッセージ・コンテンツのインポート、またはキューからのすべてのメッセージの削除を行うことができます。
JMS統計のモニター
『Oracle WebLogic Server JMSアプリケーションの開発』の「基本的なJMSアプリケーションの開発」を参照してください。
JMSサーバー、接続、キューおよびトピック宛先、JMSサーバーのセッション・プール、プール済み接続、アクティブなセッション、メッセージ・プロデューサ、メッセージ・コンシューマ、JMSトピックの恒久サブスクライバといったJMSリソースに関する統計をモニターできます。
サーバーが実行されていれば、JMS統計は増え続けます。統計は、サーバーを再起動するときにのみリセットされます。
親トピック: JMS統計の監視とメッセージの管理
JMSサーバーのモニター
WebLogicリモート・コンソールまたはJMSServerRuntimeMBean
を使用して、ドメインで定義されたアクティブなJMSサーバーに関する統計をモニターできます。JMSサーバーは、JMSサーバーに限定的にターゲット指定されたJMSモジュール内のJMSキュー・リソースおよびJMSトピック・リソースの管理コンテナとして機能します。
リモート・コンソールを使用してJMSサーバーをモニターするには、「モニタリング・ツリー」で、「サービス」、「メッセージング」、「JMSサーバー」の順に移動します。統計を表示するJMSサーバーを選択します。
WebLogicリモート・コンソールでJMSサーバーをモニターする場合は、アクティブな宛先、トランザクション、接続、およびセッション・プールもモニターできます。
- クラスタのターゲットとして指定されたJMSサーバーをモニターする
- アクティブなJMS宛先をモニターする
- アクティブなJMSトランザクションをモニターする
- アクティブなJMS接続、セッション、コンシューマ、プロデューサをモニターする
- アクティブなJMSセッション・プールをモニターする
親トピック: JMS統計のモニター
クラスタのターゲットとして指定されたJMSサーバーをモニターする
クラスタをターゲットとして指定されたJMSサービス(JMSサーバー、SAFエージェント、パス・サービスなど)と永続ストアには、動的クラスタ内の個々のインスタンスの統計をモニターするために関連付けられたRuntimeMbeansの複数のインスタンスがあります。JMSサーバーと永続ストアの実行時MBeanには、対応するサーバー・インスタンス名に従って、次のパターンを使用した名前が自動的に付けられます。
configured_JMS_service_Artifact_name
@
server-name
server-name
は構成済のサーバー名に動的サーバー・インスタンス番号を連結したものです。
親トピック: JMSサーバーのモニター
アクティブなJMS宛先をモニターする
JMSサーバーにターゲット指定されているすべてのアクティブな宛先に関する統計をモニターできます。JMS宛先は、JMSサーバーに限定的にターゲット指定されたJMSモジュール内のキュー宛先またはトピック宛先のタイプを特定します。
リモート・コンソールで、「モニタリング・ツリー」: 「サービス」: 「メッセージング」: 「JMSサーバー」に移動します。アクティブな宛先を表示するJMSサーバーを選択します。
親トピック: JMSサーバーのモニター
アクティブなJMSトランザクションをモニターする
JMSサーバーで実行しているアクティブなトランザクションをモニターできます。
リモート・コンソールで、「モニタリング・ツリー」: 「サービス」: 「メッセージング」: 「JMSサーバー」に移動します。アクティブなトランザクションを表示するJMSサーバーを選択します。
親トピック: JMSサーバーのモニター
アクティブなJMS接続、セッション、コンシューマ、プロデューサをモニターする
JMSサーバーへのアクティブなJMS接続に関する統計をモニターできます。JMS接続は、メッセージング・システムへの開かれた通信チャネルです。
リモート・コンソールで、「モニタリング・ツリー」: 「サービス」: 「メッセージング」: 「JMSサーバー」に移動します。アクティブなJMSサーバー接続を表示するJMSサーバーを選択します。
JMSサーバーのモニタリング・ページでも、サーバー上のすべてのアクティブなJMSセッション、コンシューマ、およびプロデューサの統計をモニターできます。セッションでは、生成および消費されるメッセージの順序が定義されます。また、複数のメッセージ・プロデューサとメッセージ・コンシューマを作成できます。メッセージの生成と消費には同じスレッドを使用できます。
親トピック: JMSサーバーのモニター
アクティブなJMSセッション・プールをモニターする
JMSサーバー用に定義されているすべてのアクティブなJMSセッション・プールに関する統計をモニターできます。セッション・プールを使用すると、アプリケーションでメッセージを並行して処理できます。
リモート・コンソールの「モニタリング・ツリー」で、「サービス」: 「メッセージング」: 「JMSサーバー」: myJMSServerに移動します。「セッション・プール・ランタイム」を選択して、アクティブなJMSセッション・プールに指定されたランタイム統計をモニターします。
親トピック: JMSサーバーのモニター
キューのモニター
WebLogicリモート・コンソールまたはJMSDestinationRuntimeMBean
を通じて、JMSモジュール内のキュー・リソースに関する統計をモニターできます。JMSキューでは、JMSサーバーのポイント・ツー・ポイントの宛先タイプが定義されます。キューは、同期ピア通信に使用されます。キューに配信されたメッセージは、1つのコンシューマに配信されます。
リモート・コンソールの「モニタリング・ツリー」で、「サービス」: 「メッセージング」: 「JMSサーバー」: myJMSServerに移動します。キュー・リソースをモニターするには、「宛先」: myDestinationResourceを選択します。
WebLogicリモート・コンソールを使用して、キュー上のメッセージを管理することもできます。「JMSメッセージの管理」を参照してください。
親トピック: JMS統計のモニター
トピックのモニター
WebLogicリモート・コンソールまたはJMSDestinationRuntimeMBean
を使用して、JMSモジュール内のトピック・リソースに関する統計をモニターできます。JMSトピックでは、JMSサーバーのパブリッシュ/サブスクライブの宛先タイプが定義されます。トピックは、非同期のピア通信に使用されます。トピックに配信されたメッセージは、すべてのトピック・コンシューマに配信されます。
リモート・コンソールの「モニタリング・ツリー」で、「サービス」: 「メッセージング」: 「JMSサーバー」: myJMSServerに移動します。トピック・リソースをモニターするには、「宛先」: myDestinationResourceを選択します。
親トピック: JMS統計のモニター
トピックの恒久サブスクライバのモニター
WebLogicリモート・コンソールまたはJMSDurableSubscriberRuntimeMBean
を使用して、JMSトピックで実行中のすべての永続サブスクライバに関する統計をモニターできます。恒久サブスクライバでは、トピック・サブスクライバに名前を割り当ててユーザーやアプリケーションと関連付けられます。恒久サブスクライバは、メッセージが配信された際にアクティブではない場合にも、メッセージが配信されるか期限切れになるまで、永続的なファイル・ベースのストアか、JDBCでアクセス可能なデータベースに格納されます。
トピックで実行中の恒久サブスクライバは、「JMSメッセージの管理」の説明に従って管理できます。
親トピック: JMS統計のモニター
共通分散キューのモニター
WebLogicリモート・コンソールまたはJMSDestinationRuntimeMBean
を通じて、JMSモジュール内の共通分散キュー・リソースに関する統計をモニターできます。分散キュー・リソースは、単一の論理宛先としてクライアントからアクセス可能なキューのセットです(分散キューは独自のJNDI名を持ちます)。この単位のメンバーは通常、クラスタ内の複数のサーバーに分散されており、各メンバーは個々のJMSサーバーに属しています。
リモート・コンソールの「モニタリング・ツリー」で、「サービス」: 「メッセージング」: 「JMSサーバー」: myJMSServerに移動します。「宛先」: myDestinationResourceを選択して、共通分散キュー・リソースをモニターします。
WebLogicリモート・コンソールを使用して、分散キュー上のメッセージを管理することもできます。「JMSメッセージの管理」を参照してください。
親トピック: JMS統計のモニター
共通分散トピックのモニター
WebLogicリモート・コンソールまたはJMSDestinationRuntimeMBean
を通じて、JMSモジュール内の共通分散トピック・リソースに関する統計をモニターできます。分散トピック・リソースは単一のトピックのセットであり、単一の論理宛先としてクライアントにアクセスできます(たとえば、分散トピックには独自のJNDI名があります)。この単位のメンバーは通常、クラスタ内の複数のサーバーに分散されており、各メンバーは個々のJMSサーバーに属しています。
リモート・コンソールの「モニタリング・ツリー」で、「サービス」: 「メッセージング」: 「JMSサーバー」: myJMSServerに移動します。「宛先」: myDestinationResourceを選択して、共通分散トピック・リソースをモニターします。
親トピック: JMS統計のモニター
プール済みJMS接続のモニター
サーバー上のすべてのアクティブなプール済みJMS接続に関する統計を表示できます。プール済みJMS接続は、EJBまたはサーブレットのデプロイメント記述子のresource-reference要素を使用してJMS接続ファクトリを定義するEJBとサーブレットによって使用される、セッション・プールです。
親トピック: JMS統計のモニター
JMSメッセージの管理
WebLogic JMSメッセージのモニター機能と管理機能を使用すると、新しいメッセージの作成、選択したメッセージの削除、別のキューへのメッセージの移動、別のファイルへのメッセージ・コンテンツのエクスポート、別のファイルからのメッセージ・コンテンツのインポート、またはキューからのすべてのメッセージの削除を行うことができます。
Jakarta APIを使用したJMSメッセージの管理
WebLogic Java Management Extensions (JMX)機能を使用すると、JMSDestinationRuntimeMBean
やJMSDurableSubscriberRuntimeMBean
にアクセスして、JMSキューやトピックの恒久サブスクライバ上にあるメッセージを管理できます。『Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発』のJMXを使用したWebLogic Server MBeanへのアクセスに関する項を参照してください。
WebLogic JMSには、メッセージの様々な状態があります。後続の項で説明されているように、メッセージを管理するためにこれらの状態を利用できます。有効なメッセージ状態の詳細は、Oracle WebLogic Server Java APIリファレンスのweblogic.jms.extensions.JMSMessageInfoに関する項を参照してください。
親トピック: JMSメッセージの管理
トランザクションの管理
グローバル・トランザクションの一部として生成または消費されるメッセージは、基本的にトランザクションによってロックされ、トランザクション・コーディネータがJMSブランチをコミットするか中止するまでロックされたままになります。障害が原因でコーディネータがトランザクションの結果をJMSサーバーに通信できない場合、トランザクションに関連付けられたメッセージは長時間保留されたままになります。
WebLogicリモート・コンソールから利用できるJMSサーバーのトランザクション管理機能を使用すると、次のことができます:
-
JMSサーバーが参加する進行中のトランザクションを特定します。
-
JMSトランザクション・ブランチに関連付けられたメッセージを特定します。
-
保留中のJMSトランザクション・ブランチをコミットするかロールバックすることでその結果を強制します。
-
JMSクライアント接続を管理します。
特定のWebLogic ServerインスタンスのすべてのJMS接続を表示して、接続を保持する各プロセスのアドレスとポートの情報を取得できます。接続を終了させることもできます。リモート・コンソールで、「モニタリング・ツリー」: 「サービス」: 「メッセージング」: 「JMSサーバー」に移動します。トランザクションを管理するJMSサーバーを選択します。
JMSのトランザクションの詳細は、Oracle WebLogic Server JMSアプリケーションの開発のWebLogic JMSでのトランザクションの使用方法を参照してください。
親トピック: JMSメッセージの管理
恒久トピック・サブスクライバの管理
特定のトピックの恒久サブスクライバを一覧表示したり、サブスクライバに関連付けられたメッセージを参照することができます。また、サブスクライバの作成や削除、選択したメッセージの削除、サブスクリプションの全メッセージの削除を行うことができます。
親トピック: JMSメッセージの管理