Oracle® Fusion Middleware Oracle WebLogic Server Java EE管理アプリケーションの開発 12c (12.1.2) E48064-01 |
|
Oracle WebLogic Server Java EE管理アプリケーションの開発
12c (12.1.2)
E48064-01(原本部品番号:E28092-01)
2013年6月
このドキュメントでは、Java EE管理API群について説明します。これらのAPIを使用すると、ソフトウェア開発者は、JDBC接続プールやデプロイされているアプリケーションなどのリソースを検出して参照できる単体のJavaプログラムを、Java EE Webアプリケーション・サーバー上に作成できます。
このドキュメントは、次の項で構成されています。
Java EE管理仕様には、Java EE Webアプリケーション・サーバーおよびそのリソースの実行時状態をモニターおよび管理するための標準データ・モデルが記述されています。また、Java EE MEJB (Management EJB)コンポーネントによるモデルの標準マッピングも含まれています。
次の項では、このガイド『Oracle WebLogic Server Java EE管理アプリケーションの開発』の内容と構成について説明します。
このドキュメントは、Java EEアプリケーション用の管理サービスを開発するソフトウェア開発者、およびJMX互換の管理システムを開発するソフトウェア・ベンダーを対象としています。また、WebLogic Serverを評価するビジネス・アナリストや、特定のアプリケーションでJMXの使用を考えているシステム設計者にとって便利な情報も掲載されています。
このドキュメントは、ソフトウェア・プロジェクトの設計段階と開発段階に関する情報を説明するものです。このドキュメントでは、本番段階での管理、モニター、パフォーマンス・チューニングについては扱いません。それらのトピックに関するWebLogic Serverのドキュメントとリソースへのリンクについては、「関連ドキュメント」を参照してください。
このドキュメントは、Java EEおよび一般的なアプリケーション管理の概念に精通している読者を対象としています。このドキュメントでは、限定的でありながら有用な一連のJMX管理サービスを開発するための実践的な方法を重点的に扱います。JMXをより広範な管理上の問題に適用するには、「関連ドキュメント」に挙げるJMX仕様などのドキュメントを参照してください。
このドキュメントの構成は次のとおりです。
この章「概要とロードマップ」では、このマニュアルの構成を紹介します。
「WebLogic ServerでのJava EE管理APIの使用」では、JMXについて解説し、JMXをその他のWebLogic Server管理機能と組み合せて使用する一般的な方法について説明します。
WebLogic Server拡張では、JSR 77へのWebLogic固有の拡張について説明します。
Oracleには、JMXに関する書籍、ホワイトペーパー、および詳細情報へのリンクが掲載されたWebサイト(http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html
)があります。
JMX 1.2仕様およびAPIドキュメントを参照する場合は、http://jcp.org/aboutJava/communityprocess/final/jsr003/index3.html
からダウンロードしてください。
JMXリモートAPI 1.0仕様およびAPIドキュメントを参照する場合は、http://jcp.org/aboutJava/communityprocess/final/jsr160/index.html
からダウンロードしてください。
WebLogic Serverアプリケーション用に他のタイプの管理サービスを開発するためのガイドラインについては、以下のドキュメントを参照してください。
Oracle WebLogic ServerにデプロイされたアプリケーションへのWebLogicロギング・サービスの追加。WebLogicによるログ・メッセージの国際化とローカライゼーションのサポートについて説明し、WebLogic Serverで提供されているテンプレートおよびツールを使用して、ロケール固有のメッセージ・カタログを作成または編集する方法を示します。
『Oracle WebLogic Server診断フレームワークの構成と使用』。システム管理者が、JMX、ロギングなどの管理機能を通じて公開されていないアプリケーション・モニター・データを収集する方法について説明します。
WebLogic Serverアプリケーションを開発およびチューニングするためのガイドラインについては、以下のドキュメントを参照してください。
『WebLogic Serverアプリケーションの開発』は、WebLogic Serverアプリケーションの開発ガイドです。
Oracle WebLogic Server JMXによる管理可能アプリケーションの開発。カスタムMBeanを作成および登録する方法について説明します。
Java EE管理API群を使用すると、ソフトウェア開発者は、JDBC接続プールやデプロイされているアプリケーションなどのリソースをそれ1つで検出して参照できるJavaプログラムをJava EE Webアプリケーション・サーバー上に作成できます。このAPI群はJava EEの管理仕様の一部。Java EEの管理仕様では、すべてのJava EE Webアプリケーション・サーバーは標準データ・モデルでリソースを記述する必要があります。
以下の節では、WebLogic ServerでJava EE管理APIを使用する方法について説明します。
Java EE管理データ・モデルでは、Webアプリケーション・サーバー・リソース・タイプの各インスタンスはJava EE管理対象オブジェクト(JMO)によって表現されます。Java EE管理仕様では、どのタイプのリソースをJMOで表すべきかを厳密に定めています。JMO自体には、データ・モデルにオブジェクトの場所を記述する際に使用される、一連の限られた属性のみが含まれます。
Java EE管理仕様は、http://jcp.org/aboutJava/communityprocess/final/jsr077/index.html
でダウンロードしてください。
データ・モデルでは、JMOはツリー構造で階層状に構成されます。ルートのJMO J2EEDomain
は、論理的に関連付けられたWebアプリケーション・サーバー・インスタンスの集合を表します。J2EEDomain
には、J2EEServer JMOのすべてのインスタンスのオブジェクト名が含まれ、各J2EEServer
JMOは、その集合内にある1つのサーバー・インスタンスを表しています。
JavaアプリケーションではJMOの階層を参照して、オブジェクト名の問合せやその問合せ結果で指定されるJMOのルックアップを再帰的に行えます。
各JMOインスタンスは、javax.management.ObjectName
の一意のオブジェクト名によって識別されます。オブジェクト名は、以下のパターンを使用します。
domain:name=j2eeType=value,name=value,parent-j2eeType[,property=value]*
たとえばmydomain:J2EEtype=J2EEDomain,name=mydomain
のようになります。
Java EE管理仕様では、各タイプのJMOのオブジェクト名には名前と値のペアが必須であることが厳密に定められています。
それぞれの子JMOのオブジェクト名には、その親JMOのオブジェクト名の名前と値のペアが含まれます。あるサーバー・インスタンスのJMOの名前が次である場合
mydomain:j2eeType=J2EEServer,name=myserver
そのサーバー・インスタンスにデプロイされたアプリケーションの一部であるサーブレットのJMOの名前は次のようになります:
mydomain:J2EEApplication=myapplication,J2EEServer=myserver,WebModule=myapp_mywebmodule,j2eeType=Servlet,name=myservlet_name
名前と値のペアは、任意の順序でかまいません。
Java EE管理仕様のバージョン1.0では、Webアプリケーション・サーバーがJMOを実装し、JMOへのAPIアクセスを提供していることが必須事項です。
必要に応じて、パフォーマンス統計や管理操作を行ったり、指定されたイベントが発生したときに通知を送信したりするようにJMOを実装できます。
JavaアプリケーションからJMOへのアクセスは、MEJB (Management Enterprise Java Bean)のリモート・インタフェースであるjavax.management.j2ee.Management
を介して行われます。
Java EE管理仕様では、MEJBのホーム・インタフェースがサーバーのJNDIツリーにejb.mgmt.MEJB
として登録されている必要があります。
javax.management.j2ee
パッケージのAPIリファレンス(http://download.oracle.com/javaee/6/api/javax/management/j2ee/package-summary.html
)を参照してください。
WebLogic Serverには、Java EE管理仕様バージョン1.1の必要な機能のみが実装されています。そのため、以下の制限があります。
JMOはパフォーマンス統計や管理操作、または通知の送信を行いません。
Common Information Model (CIM)へのマッピングは行いません。
SNMPの管理情報ベース(MIB)へのマッピングは行いません。
MEJBとJMOは管理サーバーでのみ使用できます。これはJava EE Management Modelと一貫性があります。Java EE Management Modelでは、論理的に関連のあるいくつかの集合内にほとんどのJava EE Webサーバーが存在し、その集合内にはサーバー・インスタンスへのアクセスやそれらの管理を行うための中枢があることを前提としています。Javaアプリケーションでは、WebLogic Serverドメインの任意のサーバー・インスタンスの任意のリソースを表すJMOを管理サーバーから参照できます。
WebLogic ServerではJMOをMBeanのラッパーとして実装しているため、JMOに対応するWebLogic Server MBeanに変更が加えられると、その変更はJava EE管理APIによってすぐに反映されます。
WebLogic ServerのすべてのJMOのオブジェクト名は、domain:
の部分がWebLogic Serverドメインの名前と一致しています。
モニターするデータをMEJBを通じて取得するには以下を実行します。
ejb.mgmt.MEJB
の下にある管理サーバーのJNDIツリーを介してjavax.management.j2ee.ManagementHome
インタフェースをルックアップします。
ManagementHome
を使用してMEJBのリモート・インタフェースであるjavax.management.j2ee.Management
のインスタンスを生成します。
例1のサンプル・クラスでは、WebLogic ServerドメインのMEJBにアクセスし、javax.management.j2ee.Management.queryNames
メソッドを呼び出します。このメソッドはドメイン内のすべてのJMOのオブジェクト名を返します。
例: JMOの名前の問合せ1
import java.io.IOException; import java.net.MalformedURLException; import java.util.Iterator; import java.util.Set; import java.util.Properties; import javax.management.j2ee.Management; import javax.management.j2ee.ManagementHome; import javax.management.AttributeNotFoundException; import javax.management.InstanceNotFoundException; import javax.management.ObjectName; import javax.management.QueryExp; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.ejb.CreateException; public class GetJMONames { static String url = "t3://localhost:7001"; static String user = "weblogic"; static String password = "weblogic"; public static void main(String[] args) { try { getAllJMONames(); }catch(Exception e){ System.out.println(e); } } public static Management getMEJBRemote() throws IOException, MalformedURLException, NamingException,CreateException { Context context = getInitialContext(); ManagementHome home = (ManagementHome) context.lookup("ejb.mgmt.MEJB"); Management bean = home.create(); return bean; } public static Context getInitialContext() throws NamingException { Properties p = new Properties(); p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); p.put(Context.PROVIDER_URL, url); if (user != null) { p.put(Context.SECURITY_PRINCIPAL, user); if (password == null) password = ""; p.put(Context.SECURITY_CREDENTIALS, password); } return new InitialContext(p); } public static void getAllJMONames() { try { Management rhome = getMEJBRemote(); String string = ""; ObjectName name = new ObjectName(string); QueryExp query = null; Set allNames = rhome.queryNames(name, query); Iterator nameIterator = allNames.iterator(); while(nameIterator.hasNext()) { ObjectName on = (ObjectName)nameIterator.next(); System.out.println(on.getCanonicalName() + "\n"); } } catch (Exception ex) { ex.printStackTrace(); } } }
WebLogic Serverでは、標準のJ2EEデプロイメント記述子と同様に、MEJBを使用してWebLogic固有のデプロイメント記述子にアクセスできるようにするJSR 77に対する拡張を実装します。productSpecificDeploymentDescriptor
属性では、WebLogic固有の記述子ファイルのXMLの内容を返します。例2にこのメソッドの呼出し方法を示します。
例2 productSpecificDeploymentDescriptor
// Get the WLS specific deployment descriptor. // This is similar to the call for the standard descriptor // (i.e., the "deploymentDescriptor" attribute) // dd = (String) managementBean.getAttribute(objName, "productSpecificDeploymentDescriptor"); // It returns a string containing the contents of the WLS specific deployment // descriptor. This is the XML file contents as a string.
このドキュメントでは次の表記規則を使用します。
規則 | 意味 |
---|---|
太字 |
太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。 |
イタリック体 |
イタリックは、ブック・タイトル、強調およびユーザーが特定の値を指定するプレースホルダー変数を示します。 |
|
固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。 |
Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc
を参照してください。
Oracleサポートへのアクセス
Oracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=info
か、聴覚に障害があるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs
を参照してください。
Oracle Fusion Middleware Oracle WebLogic Server Java EE管理アプリケーションの開発, 12c (12.1.2)
E48064-01
Copyright © 2007, 2013, Oracle and/or its affiliates.All rights reserved.
このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。
ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。
このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。
U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.
このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。
OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。
Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。
このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。