ナビゲーションをスキップ

JMX による管理の容易なアプリケーションの開発

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

概要とロードマップ

アプリケーション開発者は、管理機能を実装することによって、アプリケーションの運用および管理コストを大幅に減らすことができます。最も単純な機能は、メッセージ ロギングです。この機能は、アプリケーションの内部で発生したイベントをレポートし、ファイルまたはその他のリポジトリにメッセージを書き込むものです。アプリケーションの重要度、プロダクション環境の複雑さ、およびオペレーション センターで使用しているモニタ システムによっては、Java Management Extensions (JMX) をベースとするより高度な機能を構築することでニーズをさらに満たすことができます。JMX を使用すると、汎用管理システムでアプリケーションをモニタし、注意が必要なときに通知を生成し、アプリケーションのコンフィグレーションまたは実行時の状態を変更することで問題を解決できます。

このマニュアルでは、JMX を使用して管理の容易なアプリケーションを作成する方法について説明します。

以下の節では、『JMX による管理の容易なアプリケーションの開発』の内容と構成について説明します。

 


マニュアルの内容と対象読者

このマニュアルは、J2EE アプリケーション用の管理サービスを開発するソフトウェア開発者を対象としています。また、WebLogic Server® を評価するビジネス アナリストや、特定のアプリケーションで JMX の使用を考えているシステム設計者にとって便利な情報も掲載されています。

このマニュアルは、J2EE および一般的なアプリケーション管理の概念に精通している読者を対象としています。

このマニュアルのトピックでは、ソフトウェア プロジェクトの設計および開発段階に関連する情報を提供します。このマニュアルでは、プロダクション段階での管理、モニタ、パフォーマンス チューニングについては扱いません。それらのトピックに関する WebLogic Server のドキュメントとリソースへのリンクについては、「関連ドキュメント」を参照してください。

このマニュアルでは、限定的でありながら有用な一連の JMX 管理サービスを開発するための実践的な方法を重点的に扱います。JMX をより広範な管理上の問題に適用するには、「関連ドキュメント」に挙げる JMX 仕様などのドキュメントを参照してください。

 


このマニュアルの手引き

 


関連ドキュメント

「Sun Developer Network」には、JMX に関する書籍、ホワイトペーパー、および詳細情報へのリンクが掲載された Web サイト (http://java.sun.com/products/JavaManagement/) があります。

JMX 1.2 仕様を参照する場合は、http://jcp.org/aboutJava/communityprocess/final/jsr003/index3.html からダウンロードしてください。

JMX リモート API 1.0 仕様を参照する場合は、http://jcp.org/aboutJava/communityprocess/final/jsr160/index.html からダウンロードしてください。

javax.management* パッケージの API リファレンスは、http://java.sun.com/j2se/1.5.0/docs/api/overview-summary.html で参照できます。

WebLogic Server アプリケーション用に他のタイプの管理サービスを開発するためのガイドラインについては、以下のマニュアルを参照してください。

WebLogic Server アプリケーションを開発およびチューニングするためのガイドラインについては、『WebLogic Server アプリケーションの開発』を参照してください。

 


JMX 開発者向けのサンプル

このマニュアルの他にも、JMX 開発者向けのサンプル コードが用意されています。それらのサンプルは、管理アプリケーションの動作を例示し、主要な JMX 開発タスクを実行する実際的な手順を示します。

独自の管理アプリケーションを開発する前に、まず JMX サンプルの一部またはすべてを実行することをお勧めします。

Avitek Medical Records アプリケーション (MedRec) とチュートリアル

MedRec は WebLogic Server に付属したエンドツーエンドのサンプル J2EE アプリケーションであり、一元的で独立した医療記録管理システムをシミュレートします。MedRec アプリケーションは、患者、医師、および管理者に対して、さまざまなクライアントを使用して患者のデータを管理するためのフレームワークを提供します。

MedRec は WebLogic Server と J2EE の機能を例示し、BEA 推奨のベスト プラクティスを重要点として示します。MedRec は WebLogic Server 配布キットに含まれており、Windows マシンの [スタート] メニューからアクセスできます。Linux およびその他のプラットフォームでは、WL_HOME/samples/domains/medrec ディレクトリから MedRec を起動できます。WL_HOME は WebLogic Platform の最上位のインストール ディレクトリです。

MedRec は、JMX で管理するためのセッション EJB の 1 つをインスツルメントしています。EJB は、データベースへの書き込み回数をトラッキングし、そのカウンタを MBean 属性として公開します。

 


このリリースでの JMX の新機能と変更点

リリース 9.0 では、WebLogic Server JMX 実装に、以下のようないくつかの重要な変更点が導入されています。

JMX 1.2 および JMX リモート API 1.0 (JSR-160)

WebLogic Server 9.0 では、JDK 1.5 に含まれている Java Management Extensions (JMX) 1.2 実装が使用されています。9.0 より前のリリースでは、JMX 1.0 仕様をベースにした独自の JMX 実装が使用されていました。

また 9.0 では、リモート JMX クライアントは標準の JMX リモート API 1.0 (JSR-160) を使用して、WebLogic Server の JMX エージェントに接続できます (http://jcp.org/en/jsr/detail?id=160 を参照してください)。9.0 より前のリリースでは、JMX リモート API が公開されておらず、リモート JMX クライアントは BEA 独自の API を使用して WebLogic Server に接続しなければなりませんでした。

非推奨になった MBeanHome および型保障インタフェース

JMX リモート API (JSR-160) が公開されて、リモート JMX アクセスのための BEA 独自の API weblogic.management.MBeanHome は必要がなくなったため、非推奨になっています。

MBeanHome API では、JMX レイヤに対して、WebLogic Server MBean との対話に使用できる型付き API レイヤも提供できました。使用する JMX アプリケーション クラスでは、WebLogic Server MBean の型保障インタフェースをインポートしたり、weblogic.management.MBeanHome インタフェースを介して MBean への参照を取得したり、MBean メソッドを直接呼び出したりすることができました。

9.0 以降、型付き API レイヤも非推奨になりました。この API のようなプログラミング モデルを使用する代わりに、すべての JMX アプリケーションで、標準の JMX プログラミング モデルを使用してください。標準の JMX 設計パターンでは、クライアントは javax.management.MBeanServerConnection インタフェースを使用して、実行時に MBean、属性、および属性タイプを検索します。この JMX モデルでは、クライアントは MBeanServerConnection インタフェースを介して間接的に MBean と対話します。

型保障インタフェース (weblogic.management の下にある) をインポートするクラスがある場合は、標準の JMX プログラミング モデルを使用するように更新を行うことをお勧めします。『JMX によるカスタム管理ユーティリティの開発』の「JMX を使用した WebLogic Server MBean へのアクセス」を参照してください。JMX クライアントを更新しない場合、JMX クライアントではドメインの互換性 MBean サーバが使用されます。この互換性 MBean サーバはデフォルトで有効になっています。

MBeanHome API を使用して一般的なコンフィグレーション タスクを自動化していた場合は、JMX の代わりに新しい Weblogic Scripting Tool (WLST) を使用することを検討してください。WLST はコマンドライン形式のスクリプト インタフェースで、アクティブまたは非アクティブな Weblogic Server ドメインの管理およびモニタに使用できます。WLST スクリプト環境は、Java のスクリプト インタプリタである Jython に基づいています。WebLogic スクリプト関数に加えて、ローカル変数、条件変数、フロー制御文など、インタプリタ言語の一般的な機能を使用できます。Jython 言語構文に従って、WebLogic スクリプト言語を拡張できます。http://www.jython.org を参照してください。WLST の詳細については、『WebLogic Scripting Tool ガイド』を参照してください。

ドメインにおけるコンフィグレーション データの配布モデルの変更

WebLogic Server 9.0 では、ドメインのコンフィグレーションに対する変更を収集し、それらをまとめてドメイン全体に配布できます。また 9.0 リリースには、変更の配布のモニタに使用できる API も含まれています。

9.0 では、管理サーバは一連の保留中の MBean をホストします。これらはドメインのコンフィグレーションに対するすべての保留状態の変更をメモリ内で表現しています (保留中の MBean データは、保留中の config.xml ファイルにバックアップされます)。保留中の MBean の変更は、すぐには有効になりません。トランザクションと類似したプロセスで、明示的に変更を配布する必要があります。変更を消費できない管理対象サーバが 1 つでもあれば、分散プロセスにおける一連の変更点すべてがロールバックされます。このトランザクション プロセスが、JMX を使用してドメインのコンフィグレーションを変更する唯一の方法です。『JMX によるカスタム管理ユーティリティの開発』の「JMX を使用したドメインのコンフィグレーションの管理」を参照してください。

9.0 より前のリリースでは、管理サーバは、ドメイン内のすべてのサーバおよびサーバ リソースに対する永続化されたコンフィグレーションを表す一連の MBean をホストしていました。パフォーマンス向上のために、各サーバ インスタンスは、これらの MBean をローカルでレプリケートし、ローカル コンフィグレーション MBean と呼ばれるレプリカを使用していました。JMX クライアントが管理 MBean を変更すると、管理サーバは、それ自身がその変更を統合できない場合でも、ドメイン内のすべてのサーバ インスタンス上のローカル コンフィグレーション MBean をすぐに更新しました。場合によっては、サーバ インスタンスを再起動しないとローカル コンフィグレーション MBean を更新できなかったり、レプリカとそのマスター管理 MBean に異なる値が格納されたりすることがあり、さらに、JMX クライアントは直接ローカル コンフィグレーション MBean にアクセスして値を変更できたため、レプリカとそのマスター MBean の間で矛盾した状態になってしまうこともありました。

MBean データ モデルの変更

JMX 仕様では、MBean をまとめるためのモデルを定めていません。ただし、WebLogic Server ドメインのコンフィグレーションは、XML ドキュメント内で指定されるため、WebLogic Server は MBean を、XML ドキュメント構造を反映した階層モデルにまとめます。

たとえば、ドメインのコンフィグレーション ドキュメントのルートは <domain> であり、そのルートの下には、<server><cluster> などの子要素があります。各ドメインは、<domain> ルート要素を表す DomainMBean タイプの単一の MBean を保持しています。DomainMBean 内では、JMX 属性が、<server><cluster> などの子要素を表す MBean へのアクセスを提供します。

9.0 より前のリリースでは、次のようになっていました。

9.0 以降は、以下のようになっています。

クライアントは、明確に定義された不変のオブジェクト名で MBean サーバに登録されている一連の新しいサービス MBean を使用して、階層にアクセスできます。JMX クライアントは、このオブジェクト名を指定してサービス MBean を取得します。その後、そのサービス MBean の属性とオペレーションを使用して、WebLogic Server MBean 階層のルートを取得します。

機能が調整された新しい MBean サーバ

管理サーバは、3 つの MBean サーバを保持しており、その各々が異なった MBean 階層へのアクセスを提供します。編集 MBean サーバはドメインの編集可能なコンフィグレーション MBean へのアクセスを提供し、ドメイン実行時 MBean サーバはドメイン内のすべての実行時 MBean および読み込み専用コンフィグレーション MBean への結合アクセスを提供し、実行時 MBean サーバは管理サーバ上の実行時および読み込み専用コンフィグレーション MBean のみへのアクセスを提供します。

各管理対象サーバは、実行時 MBean サーバを保持します。これは、実行時および読み込み専用コンフィグレーション MBean のみへのアクセスを提供するものです。

JMX クライアントは、標準の javax.remote.access (JSR-160) API を使用して、MBean サーバに登録された MBean にアクセスし、これらと対話を行います。

『JMX によるカスタム管理ユーティリティの開発』の「MBean サーバ」を参照してください。

カスタム MBean の登録機能

9.0 より前のリリースでは、WebLogic Server インスタンスで MBean サーバにカスタム MBean を登録する場合、独自の MBean サーバを作成するか、weblogic.management.RemoteMBeanServer を使用して、WebLogic Server の MBean サーバに登録を行うことができました。

9.0 および JDK 1.5 以降は、WebLogic Server JVM で実行されている JMX クライアントから、以下のいずれかを行うことができます。

『JMX による管理の容易なアプリケーションの開発』の「実行時 MBean サーバの使用」を参照してください。

WebLogic Server MBean の新しいリファレンス ドキュメント

パブリックな WebLogic Server MBean はすべて、新しいドキュメント『WebLogic Server MBean リファレンス』で説明されています。このドキュメントでは、各 MBean について、以下の情報が記載されています。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次