Oracle® Fusion Middleware Oracle WebLogic Server JMSの構成と管理 11g リリース1(10.3.5) B61636-03 |
|
前 |
次 |
WebLogic ServerのこのリリースにはWebLogic診断サービスが含まれています。これは、WebLogic Serverプロセス内で実行され、標準のサーバー・ライフ・サイクルに参加する、モニターと診断のサービスです。このサービスを使用すると、実行中のサーバーおよびそのコンテナ内にデプロイされているアプリケーションによって生成された診断データを作成、収集、分析、アーカイブし、それらの診断データにアクセスできます。
Weblogic JMSでは、高度な実行時統計機能でWebLogicドメイン内のJMSサーバーや宛先リソースをモニターして、問題がないかどうかを確認できます。問題があれば、プロファイリングによって、問題の原因となっているアプリケーションを判断できます。アプリケーションを絞り込んだら、JMSデバッグ機能を使用して、そのアプリケーション内の問題点を突き止めます。
JMS診断通知、デバッグ・オプション、メッセージ・ライフ・サイクルのロギング、およびJMS宛先でのメッセージ処理の制御を構成する方法については、第10章「WebLogic JMSのトラブルシューティング」を参照してください。
このリリースに含まれるメッセージ管理ツールでは、管理コンソールまたは新しいパブリック・ランタイムAPIを使用することで、すべてのメッセージを表示・参照したり、稼働中のJMSサーバーでほとんどのメッセージを操作したりする機能が強化されています。これらのメッセージ管理機能には、トランザクション管理、恒久サブスクライバの管理、JMSクライアント接続の管理に加えて、メッセージの表示(ソート用)、メッセージの操作(作成、移動、削除など)、メッセージのインポートとエクスポートなどがあります。
以下の節では、管理コンソールを通じて、JMSリソースの統計のモニターやJMSメッセージの管理を行う方法について説明します。
WebLogic診断サービスの詳細は、『Oracle WebLogic Server診断フレームワークの構成と使い方』を参照してください。
WebLogic JMSを構成すると、アプリケーションでJMS APIを介したメッセージの送受信を開始できるようになります。『Oracle WebLogic Server JMSのプログラミング』の「基本的なJMSアプリケーションの開発」を参照してください。
JMSサーバー、接続、キューおよびトピック宛先、JMSサーバーのセッション・プール、プール済み接続、アクティブなセッション、メッセージ・プロデューサ、メッセージ・コンシューマ、JMSトピックの恒久サブスクライバといったJMSリソースに関する統計をモニターできます。
サーバーが実行されていれば、JMS統計は増え続けます。統計は、サーバーを再起動するときにのみリセットされます。
管理コンソールまたはJMSServerRuntimeMBean
を通じて、ドメインに定義されているアクティブなJMSサーバーに関する統計をモニターできます。JMSサーバーは、JMSサーバーに限定的にターゲット指定された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接続は、メッセージング・システムへの開かれた通信チャネルです。
アクティブなJMS接続用に提供される実行時統計の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのJMSサーバー: モニター: アクティブな接続に関する項を参照してください。
JMSサーバーのアクティブな接続のモニター用ページでも、サーバー上のアクティブなJMSセッション、コンシューマ、およびプロデューサの統計をすべてモニターできます。セッションでは、生成および消費されるメッセージの順序が定義されます。また、複数のメッセージ・プロデューサとメッセージ・コンシューマを作成できます。メッセージの生成と消費には同じスレッドを使用できます。
管理コンソールを使用して、セッション、コンシューマ、およびプロデューサをモニターする方法については、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの次のトピックを参照してください。
管理コンソールまたは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管理コンソール・オンライン・ヘルプの共通分散キュー - 統計のモニターに関する項を参照してください。
Weblogic JMSメッセージのモニター機能と管理機能を使用すると、新しいメッセージの作成、選択したメッセージの削除、別のキューへのメッセージの移動、別のファイルへのメッセージ・コンテンツのエクスポート、別のファイルからのメッセージ・コンテンツのインポート、またはキューからのすべてのメッセージの排出が行えます。
WebLogic Java Management Extensions (JMX)機能を使用すると、JMSDestinationRuntimeMBean
やJMSDurableSubscriberRuntimeMBean
にアクセスして、JMSキューやトピックの恒久サブスクライバ上にあるメッセージを管理できます。詳細は、『Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発』の「JMXを使用したWebLogic Server MBeanへのアクセス」を参照してください。
WebLogic JMSには、メッセージの様々な状態があります。後続の項で説明されているように、メッセージを管理するためにこれらの状態を利用できます。有効なメッセージ状態の詳細は、『Oracle WebLogic Server APIリファレンス』のweblogic.jms.extensions.JMSMessageInfoに関する項を参照してください。
管理コンソールの「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://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 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によるトランザクションの使い方」を参照してください。