ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server JMSの構成と管理
11gリリース1 (10.3.6)
B61636-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

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

この章では、JMS統計をモニターおよび監視する方法について説明します。実行中のサーバーおよびそのコンテナ内にデプロイされているアプリケーションによって生成された診断データを作成、収集、分析、アーカイブし、それらの診断データにアクセスできます。

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

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

このリリースに含まれるメッセージ管理ツールでは、管理コンソールまたは新しいパブリック・ランタイムAPIを使用することで、すべてのメッセージを表示・参照したり、稼働中のJMSサーバーでほとんどのメッセージを操作したりする機能が強化されています。これらのメッセージ管理機能には、トランザクション管理、恒久サブスクライバの管理、JMSクライアント接続の管理に加えて、メッセージの表示(ソート用)、メッセージの操作(作成、移動、削除など)、メッセージのインポートとエクスポートなどがあります。

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

WebLogic診断サービスの詳細は、『Oracle WebLogic Server診断フレームワークの構成と使用』を参照してください。

JMS統計のモニター

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

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

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

JMSサーバーのモニター

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

管理コンソールを使用したJMSサーバーのモニターの詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプJMSサーバーのモニターに関する項を参照してください。

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

アクティブなJMS宛先をモニターする

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

詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプJMSサーバー: モニター: アクティブな宛先に関する項を参照してください。

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

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

アクティブなJMSトランザクション用に提供される実行時統計の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプJMSサーバー: モニター: アクティブなトランザクションに関する項を参照してください。

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

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

アクティブなJMS接続用に提供される実行時統計の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプJMSサーバー: モニター: アクティブな接続に関する項を参照してください。

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

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

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

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

アクティブなJMSセッション・プール用に提供される実行時統計の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプJMSサーバー: モニター: アクティブなセッション・プールに関する項を参照してください。

キューのモニター

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

管理コンソールを使用したキュー・リソースのモニターの詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプJMSシステム・モジュールのキューのモニターに関する項を参照してください。

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

トピックのモニター

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

管理コンソールを使用したトピック・リソースのモニターの詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプJMSシステム・モジュールのトピックのモニターに関する項を参照してください。

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

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

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

共通分散キューのモニター

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

管理コンソールを使用して共通分散キュー・リソースをモニターする方法の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプ共通分散キュー - 統計のモニターに関する項を参照してください。

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

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

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

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

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

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

詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプJMSサーバー: モニター: アクティブなプール接続に関する項を参照してください。

JMSメッセージの管理

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

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

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

WebLogic JMSには、メッセージの様々な状態があります。後続の項で説明されているように、メッセージを管理するためにこれらの状態を利用できます。有効なメッセージ状態の詳細は、Oracle WebLogic Server APIリファレンスweblogic.jms.extensions.JMSMessageInfoを参照してください。

管理コンソールを使用したJMSメッセージの管理

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

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

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

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

デフォルト設定の「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句と類似した構文を含む文字列から構成されます。

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

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://download.oracle.com/javaee/5/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 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サーバーに通信できない場合、トランザクションに関連付けられたメッセージは長時間保留されたままになります。

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

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

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

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

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

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

JMSのトランザクションの詳細は、『Oracle WebLogic Server JMSのプログラミング』の「WebLogic JMSによるトランザクションの使い方」を参照してください。

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

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

詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプトピックの恒久サブスクライバの管理に関する項を参照してください。