ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server JMS のコンフィグレーションと管理
11g リリース 1 (10.3.1)
B55547-01
 

目次
目次

戻る
戻る
 
次へ
次へ
 

7 JMS 統計のモニタとメッセージの管理

WebLogic Server のこのリリースには WebLogic 診断サービスが含まれています。これは、WebLogic Server プロセス内で実行され、標準のサーバ ライフ サイクルに参加する、モニタと診断のサービスです。このサービスを使用すると、実行中のサーバおよびそのコンテナ内にデプロイされているアプリケーションによって生成された診断データを作成、収集、分析、アーカイブし、それらの診断データにアクセスできます。

Weblogic JMS では、高度な実行時統計機能で WebLogic ドメイン内の JMS サーバや送り先リソースをモニタして、問題がないかどうかを確認できます。問題があれば、プロファイリングによって、問題の原因となっているアプリケーションを判断できます。アプリケーションを絞り込んだら、JMS デバッグ機能を使用して、そのアプリケーション内の問題点を突き止めます。

JMS 診断通知、デバッグ オプション、メッセージ ライフ サイクルのロギング、および JMS 送り先でのメッセージ処理の制御をコンフィグレーションする方法については、「WebLogic JMS のトラブルシューティング」を参照してください。

このリリースのメッセージ管理ツールにより、Administration Console または新しいパブリックな実行時 API を使用して、実行中の JMS サーバですべてのメッセージを表示したりほとんどのメッセージを操作したりできるようになりました。これらのメッセージ管理機能には、トランザクション管理、恒久サブスクライバの管理、JMS クライアント接続の管理に加えて、メッセージの表示 (ソート用)、メッセージの操作 (作成、移動、削除など)、メッセージのインポートとエクスポートなどがあります。

以下の節では、Administration Console を通じて、JMS リソースの統計のモニタや JMS メッセージの管理を行う方法について説明します。

WebLogic 診断サービスの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server 診断フレームワークのコンフィグレーションと使い方』を参照してください。

JMS 統計のモニタ

WebLogic JMS をコンフィグレーションすると、アプリケーションで JMS API を介したメッセージの送受信を開始できるようになります。『Oracle Fusion Middleware Oracle WebLogic Server JMS プログラマーズ ガイド』の「基本的な JMS アプリケーションの開発」を参照してください。

JMS サーバ、接続、キューおよびトピック送り先、JMS サーバのセッション プール、プール済み接続、アクティブなセッション、メッセージ プロデューサ、メッセージ コンシューマ、JMS トピックの恒久サブスクライバといった JMS リソースに関する統計をモニタできます。

サーバが実行されていれば、JMS 統計は増え続けます。統計は、サーバを再起動するときにのみリセットされます。

JMS サーバのモニタ

Administration Console または JMSServerRuntimeMBean を通じて、ドメインに定義されているアクティブな JMS サーバに関する統計をモニタできます。JMS サーバは、JMS サーバに限定的に対象指定された JMS モジュール内の JMS キュー リソースおよび JMS トピック リソースの管理コンテナとして機能します。

Administration Console を使用した JMS サーバのモニタの詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「JMS サーバのモニタ」を参照してください。

Administration Console で JMS サーバをモニタする場合は、アクティブな送り先、トランザクション、接続、およびセッション プールもモニタできます。

アクティブな JMS 送り先をモニタする

JMS サーバに対象指定されているすべてのアクティブな送り先に関する統計をモニタできます。JMS 送り先は、JMS サーバに限定的に対象指定された JMS モジュール内のキュー送り先またはトピック送り先のタイプを特定します。

詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「JMS サーバ : モニタ : アクティブな送り先」を参照してください。

アクティブな JMS トランザクションをモニタする

JMS サーバで実行しているすべてのアクティブなトランザクションに関する統計をモニタできます。

アクティブな JMS トランザクション用に提供される実行時統計の詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「JMS サーバ : モニタ : アクティブなトランザクション」を参照してください。

アクティブな JMS 接続、セッション、コンシューマ、プロデューサをモニタする

JMS サーバへのアクティブな JMS 接続に関する統計をモニタできます。JMS 接続は、メッセージング システムへの開かれた通信チャネルです。

アクティブな JMS サーバ接続用に提供される実行時統計の詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「JMS サーバ : モニタ : アクティブな接続」を参照してください。

JMS サーバのアクティブな接続のモニタ用ページでも、サーバ上のアクティブな JMS セッション、コンシューマ、およびプロデューサの統計をすべてモニタできます。セッションでは、生成および消費されるメッセージの順序が定義されます。また、複数のメッセージ プロデューサとメッセージ コンシューマを作成できます。メッセージの生成と消費には同じスレッドを使用できます。

Administration Console を使用して、セッション、コンシューマ、およびプロデューサをモニタする方法については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの以下のトピックを参照してください。

アクティブな JMS セッション プールをモニタする

JMS サーバ用に定義されているすべてのアクティブな JMS セッション プールに関する統計をモニタできます。セッション プールを使用すると、アプリケーションでメッセージを並行して処理できます。

アクティブな JMS セッション プール用に提供される実行時統計の詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「JMS サーバ : モニタ : アクティブなセッション プール」を参照してください。

キューのモニタ

Administration Console または JMSDestinationRuntimeMBean を通じて、JMS モジュール内のキュー リソースに関する統計をモニタできます。JMS キューでは、JMS サーバのポイント ツー ポイントの送り先タイプが定義されます。キューは、同期ピア通信に使用されます。キューに配信されたメッセージは、1 つのコンシューマに配信されます。

Administration Console を使用したキュー リソースのモニタの詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「JMS システム モジュールのキューのモニタ」を参照してください。

Administration Console を使用して、キュー上のメッセージを管理することもできます。「JMS メッセージの管理」を参照してください。

トピックのモニタ

Administration Console または JMSDestinationRuntimeMBean を通じて、JMS モジュール内のトピック リソースに関する統計をモニタできます。JMS トピックでは、JMS サーバのパブリッシュ/サブスクライブの送り先タイプが定義されます。トピックは、非同期のピア通信に使用されます。トピックに配信されたメッセージは、すべてのトピック コンシューマに配信されます。

Administration Console を使用したトピック リソースのモニタの詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「JMS システム モジュールのトピックのモニタ」を参照してください。

トピックの恒久サブスクライバのモニタ

Administration Console または JMSDurableSubscriberRuntimeMBean を通じて、JMS トピックで実行中のすべての恒久サブスクライバに関する統計をモニタできます。恒久サブスクライバでは、トピック サブスクライバに名前を割り当ててユーザやアプリケーションと関連付けられます。恒久サブスクライバは、メッセージが配信された際にアクティブではない場合にも、メッセージが配信されるか期限切れになるまで、永続的なファイル ベースのストアか、JDBC でアクセス可能なデータベースに格納されます。

Administration Console を使用して、トピックで動作する恒久サブスクライバを管理することもできます。「JMS メッセージの管理」を参照してください。

共通分散キューのモニタ

Administration Console または JMSDestinationRuntimeMBean を通じて、JMS モジュール内の共通分散キュー リソースに関する統計をモニタできます。分散キュー リソースは、単一の論理的な送り先としてクライアントからアクセス可能なキューのセットです (分散キューは独自の JNDI 名を持ちます)。この単位のメンバーは通常、クラスタ内の複数のサーバに分散されており、各メンバーは個々の JMS サーバに属しています。

Administration Console を使用して共通分散キュー リソースをモニタする方法の詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「共通分散キュー - 統計のモニタ」を参照してください。

Administration Console を使用して、分散キュー上のメッセージを管理することもできます。「JMS メッセージの管理」を参照してください。

共通分散トピックのモニタ

Administration Console または JMSDestinationRuntimeMBean を通じて、JMS モジュール内の共通分散トピック リソースに関する統計をモニタできます。分散トピック リソースは、単一の論理的な送り先としてクライアントからアクセス可能なトピックのセットです (分散トピックは独自の JNDI 名を持ちます)。この単位のメンバーは通常、クラスタ内の複数のサーバに分散されており、各メンバーは個々の JMS サーバに属しています。

Administration Console を使用して共通分散トピック リソースをモニタする方法の詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「共通分散キュー - 統計のモニタ」を参照してください。

プール済み JMS 接続のモニタ

サーバ上のすべてのアクティブなプール済み JMS 接続に関する統計を表示できます。プール済み JMS 接続は、EJB またはサーブレットのデプロイメント記述子の resource-reference 要素を使用して JMS 接続ファクトリを定義する EJB とサーブレットによって使用される、セッション プールです。

詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「JMS サーバ : モニタ : アクティブなプール済み接続」を参照してください。

JMS メッセージの管理

Weblogic JMS メッセージのモニタ機能と管理機能を使用すると、新しいメッセージの作成、選択したメッセージの削除、別のキューへのメッセージの移動、別のファイルへのメッセージ コンテンツのエクスポート、別のファイルからのメッセージ コンテンツのインポート、またはキューからのすべてのメッセージの排出が行えます。

Java API を使用した JMS メッセージの管理

WebLogic Java Management Extensions (JMX) 機能を使用すると、JMSDestinationRuntimeMBeanJMSDurableSubscriberRuntimeMBean にアクセスして、JMS キューやトピックの恒久サブスクライバ上にあるメッセージを管理できます。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server JMX によるカスタム管理ユーティリティの開発』の「JMX を使用した WebLogic Server MBean へのアクセス」を参照してください。

Administration Console を使用した JMS メッセージの管理

Administration Console の [JMS メッセージの管理] ページには、モニタしているスタンドアロンのキュー、分散キュー、または恒久トピック サブスクライバで使用できるメッセージの概要が表示されます。ページ内でメッセージを探したり、指定したフィルタ条件を満たすメッセージのセットを検索したりできます。メッセージの表示をカスタマイズして、必要な情報のみを表示することもできます。このページでは、コンテンツを表示するメッセージの選択、新しいメッセージの作成、1 つまたは複数のメッセージの削除、メッセージの移動、メッセージのインポートとエクスポート、キューや恒久サブスクリプションからの全メッセージの排出 (削除) が行えます。

Administration Console を使用したスタンドアロンのキュー、分散キュー、および恒久サブスクライバにあるメッセージの管理の詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプで以下の手順を参照してください。

各メッセージ管理機能については、以降の節で詳しく説明します。

メッセージの実行時情報をモニタする

デフォルト設定の [JMS メッセージの管理] ページには、キューまたは恒久サブスクライバ上の各メッセージに関する情報が、以下のカラムで構成される表形式で表示されます。

  • [ID] - メッセージのユニークな識別子。

  • [種類] - JMS メッセージの種類 (BytesMessage、TextMessage、StreamMessage、ObjectMessage、MapMessage、XMLMessage など)。

  • [相関 ID] - メッセージのユーザ定義の識別子。通常は件名が同じメッセージの相関に使用されます。

  • [優先順位] - メッセージの重要度または緊急度のレベルを示す順位。0 が最低、9 が最高です。通常は、0 - 4 が通常の優先度、5 - 9 は緊急度の高い優先度を示します。優先順位はデフォルトで 4 に設定されています。

  • [タイムスタンプ] - メッセージがキューに到着した時刻。

表示するカラムの順序を変更したり、どのカラムを表示してどのカラムを非表示にするかを選択したりできます。ページに表示するメッセージの数を、デフォルトの 10 から 20 または 30 に増やすこともできます。

デフォルトでは、送り先に到着した順番でメッセージが表示されます。[ID] カラムのヘッダをクリックすると、メッセージ ID の昇順または降順でメッセージをソートできます。ただし、ソート順をいったん変更すると、当初のソート順に戻すことはできません。メッセージを到着順で表示するには、[JMS システム モジュール リソース] ページに戻ってキューを選択しなおします。

メッセージをクエリする

[JMS メッセージの管理] ページの上部にある [メッセージ セレクタ] フィールドを使用すると、有効な JMS メッセージ ヘッダまたはプロパティ (JMSXDeliveryCount を除く) に基づいてキュー上のメッセージをフィルタ処理できます。メッセージ セレクタはブール式であり、SQL の select 文の where 句と似た構文を持つ String です。

以下に、セレクタ式の例を示します。

salary > 64000 and dept in ('eng','qa')
(product like 'WebLogic%' or product like '%T3') 
       and version > 3.0
hireyear between 1990 and 1992 
       or fireyear is not null
fireyear - hireyear > 4

メッセージ セレクタ構文の詳細については、javax.jms.Message の Javadoc (http://java.sun.com/javaee/5/docs/api/javax/jms/Message.html) を参照してください。

メッセージを移動する

以下の条件を満たせば、ソース送り先から対象送り先にメッセージを転送できます。

  • ソース送り先が、消費の休止状態にあるキューまたはトピック恒久サブスクライバであること。


    注意 :

    消費の休止状態の詳細については、「消費の休止と消費の再開」を参照してください。

  • メッセージの状態が、表示、遅延、または順序付けであること。

  • 対象送り先が、

    • ソース送り先と同じクラスタにあること。

    • キュー、トピック、またはトピック恒久サブスクライバであること。

    • 生成の休止状態ではないこと。


      注意 :

      生成の休止状態の詳細については、「生成の休止と生成の再開」を参照してください。

メッセージを移動しても、メッセージの識別子は変更されません。移動したメッセージがすでに対象送り先に存在する場合は、同じ識別子の重複メッセージが送り先に追加されます。

メッセージを削除する

以下の条件を満たす場合に、キューまたはトピックの恒久サブスクライバから特定のメッセージを削除したりすべてのメッセージを排出したりできます。

  • 送り先が消費の休止状態にあること。


    注意 :

    消費の休止状態の詳細については、「消費の休止と消費の再開」を参照してください。

  • メッセージの状態が、表示、遅延、または順序付けであること。

削除処理の間は、送り先がロックされます。削除処理中に障害が発生すると、選択したメッセージの一部しか削除されない可能性があります。

新しいメッセージを作成する

送り先に送信する新しいメッセージを作成できます。新しいメッセージを作成するには、以下の情報を指定します。

  • [メッセージの種類] - BytesMessage、TextMessage、StreamMessage、ObjectMessage、MapMessage、XMLMessage など。

  • [相関 ID] - メッセージのユーザ定義の識別子。通常は件名が同じメッセージの相関に使用されます。

  • [有効期限] - メッセージの有効期限 (存続時間値)。

  • [優先順位] - メッセージの重要度または緊急度のレベルを示す順位。0 が最低、9 が最高です。通常は、0 - 4 が通常の優先度、5 - 9 は緊急度の高い優先度を示します。優先順位はデフォルトで 4 に設定されています。

  • [配信モード] - PERSISTENT または NON_PERSISTENT

  • [配信時間] - メッセージをコンシューマに配信できる最も早い絶対時間。

  • [再配信の制限] - メッセージがエラー送り先に移動するまでに試行できる再配信の回数。

  • [ヘッダ] - すべての JMS メッセージにデフォルトで挿入され、メッセージ コンシューマで利用できる標準のヘッダ フィールド。一部のフィールドは、メッセージ プロデューサで設定できます。

  • [本文] - メッセージのコンテンツ。

JMS メッセージのプロパティの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server JMS プログラマーズ ガイド』の「WebLogic JMS について」を参照してください。

メッセージをインポートする

XML フォーマットのメッセージをインポートすると、指定した送り先にメッセージが作成されるか、既存のメッセージが置換されます。インポートするメッセージの対象送り先として指定できるのは、キューまたはトピック恒久サブスクライバです。送り先は、生成の休止状態である必要があります。


注意 :

生成の休止状態の詳細については、「生成の休止と生成の再開」を参照してください。

インポートしたファイルによって置換されたメッセージが JMS トランザクションに関連付けられていた場合は、インポートしたメッセージも引き続きそのトランザクションに関連付けられます。

新しいメッセージを作成する場合や、インポートしたファイルによって既存のメッセージが置換される場合は、以下の規則が適用されます。

  • 割り当て制限は、新しいメッセージと置換したメッセージの両方に適用される。

  • インポートしたメッセージの配信回数はゼロに設定される。

  • 新しいメッセージ ID は、インポートしたメッセージごとに生成される。

  • インポートしたメッセージの配信モードが PERSISTENT に設定されており、対象送り先にストアが存在しない場合は、配信モードが NON-PERSISTENT に変更される。


    注意 :

    JMS メッセージのインポートは、結果だけを見ると新しい JMS メッセージの作成やパブリッシュに似ていますが、ExpirationTime が定義されている (ゼロでない) メッセージのインポート時の動作が異なります。これは、メッセージ管理 API の ExpirationTime がインポートされたメッセージ専用であるためです。一方、メッセージ送信 API の ExpirationTime は送信されたメッセージの時間に関連するものです。

メッセージをエクスポートする

メッセージをエクスポートすると、JMS メッセージが XML フォーマットまたはシリアライズされたフォーマットに変換されます。ソース送り先は、生成の休止状態である必要があります。


注意 :

生成の休止状態の詳細については、「生成の休止と生成の再開」を参照してください。

一時的な送り先を使用することで、サーバ定義の送り先のコンフィグレーションと作成に伴うシステム管理のオーバーヘッドを発生させずに、必要に応じてアプリケーションで送り先を作成できます。


注意 :

通常、JMS アプリケーションでは、JMSReplyTo ヘッダ フィールドを使用してリクエストに応答を返すことができます。しかし、JMSReplyTo フィールドの情報は使用可能な送り先オブジェクトではなく、エクスポートまたはインポートの後は有効ではありません。

トランザクションの管理

グローバル トランザクションの一部として生成または消費されるメッセージは、基本的にトランザクションによってロックされ、トランザクション コーディネータが JMS ブランチをコミットまたは中止するまでロックされたままになります。障害が原因でコーディネータがトランザクションの結果を JMS サーバに通信できない場合、トランザクションに関連付けられたメッセージは長時間保留されたままになります。

Administration Console から利用できる JMS サーバのトランザクション管理機能を使用すると、以下が行えます。

  • JMS サーバが参加する進行中のトランザクションを特定する。

  • JMS トランザクション ブランチに関連付けられたメッセージを特定する。

  • 保留中の JMS トランザクション ブランチをコミットするかロールバックすることでその結果を強制する。

  • JMS クライアント接続を管理する。

特定の WebLogic Server インスタンスのすべての JMS 接続を表示して、接続を保持する各プロセスのアドレスとポートの情報を取得できます。接続を終了させることもできます。Administration Console を使用した JMS サーバのトランザクションの管理の詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「JMS サーバ : モニタ : アクティブなトランザクション」を参照してください。

JMS のトランザクションの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server JMS プログラマーズ ガイド』の「WebLogic JMS によるトランザクションの使い方」を参照してください。

恒久トピック サブスクライバの管理

特定のトピックの恒久サブスクライバを一覧表示したり、サブスクライバに関連付けられたメッセージを参照したりできます。また、サブスクライバの作成や削除、選択したメッセージの削除、サブスクリプションの全メッセージのパージを実施できます。

詳細については、Oracle Fusion Middleware Oracle WebLogic Server の Administration Console オンライン ヘルプの「トピックの恒久サブスクライバの管理」を参照してください。