MacとJavaとアーチェリーと


最近のエントリー


最近のレスポンス
Re: Leopard - Mail.app がハング
English! この設定でとりあえず解決しました。 ありがとうございます。 で、根本的に解決するのを待ちます。

Re: JMX Remote を使って WebLogic Server 9.x の MBean にアクセス
Hello - How to get MBean for Datasource and get database connection to verify if Datasource is running. Thanks

Apache 2.2 & syslogd @ Leopard
前回の続き。 OS起動時に一度だけ起動する場合は、Ru...

Re: Leopard - Mail.app のハング解消
うちも同様の状況になりました。日本語環境...

Re: Leopard - Mail.app がハング
貴重な情報ありがとうございます。 言語をEnglishにすると、たしかにM...
3月 2007
     1  2  3 
 4  5  6  7  8  9  10 
 11  12  13  14  15  16  17 
 18  19  20  21  22  23  24 
 25  26  27  28  29  30  31 
2  |  今日  |  4





はてなブックマーク数

あわせて読みたい


follow yusukey at http://twitter.com


JMX の仕様は昔からありますが、それにアクセスする標準的な方法はしばらくなく、WLS6.0 〜 8.1 まで、BEA は独自に EJB / RMI をベースとした方法を提供していました。

しばらくすると、JMX Remote APIという仕様が策定されました。最近の WebLogic (9.x 以降)や Tomcat が対応しています。
WebLogic は JMX Remote API に対応したのに伴い従来のアクセス方法には対応しなくなった(みたい?)※で、虚無僧が WLS9.x で動かない(みたい?)とのことです。

で、勉強がてらドキュメントと睨めっこして可能な限りシンプルなコードを書いてみました。
従来の WLS の API との一番の違いは MBean のリモートスタブそのものを取得できないことです。
オブジェクト名と属性(getter)を指定して結果を取得する(MBeanServerConnection#getAttribute)か、オブジェクト名とメソッド名を指定してメソッド実行をする(MBeanServerConnection#invoke)ことになるようです。

・サンプルコード


import java.util.Properties;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import javax.naming.Context;

public class MBeanTest {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.put(Context.SECURITY_PRINCIPAL, "weblogic");
props.put(Context.SECURITY_CREDENTIALS, "weblogic");
props.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "weblogic.management.remote");
JMXConnector connector = JMXConnectorFactory.connect(
new JMXServiceURL("service:jmx:t3://localhost:7001/jndi/weblogic.management.mbeanservers.domainruntime"), props);
MBeanServerConnection connection = connector.getMBeanServerConnection();
ObjectName sr = new ObjectName("com.bea:Name=AdminServer,Location=AdminServer,Type=ServerRuntime");
System.out.println(connection.getAttribute(sr, "State"));
connector.close();
}
}


・実行イメージ
$ java -cp weblogic.jar:. MBeanTest
RUNNING
$


※ドキュメントでは旧API は「非推奨」ですが、〜WLS8.1 と WLS9.x では内部的な MBean の実装モデルが随分違います。なので、「枯れていない」ラッパー用のコードで一応使えるようになっているような状況と思われます。
「もう基本的にメンテはしないよ」という通常の「非推奨」とは違うレベルでお勧めできません。
参考:
・WLS9.2 - WebLogic Server MBean について
・WLS8.1 - WebLogic JMX サービスの概要

タグ : ,

Hello - How to get MBean for Datasource and get database connection to verify if Datasource is running. Thanks


コメント追加

タイトル
本文
HTML : b, i, blockquote, br, p, pre, a href="", ul, ol, li
名前
E-mail
Webサイト
保存しますか? はい  いいえ 

E-mailは公開されません, このエントリーの新規コメント通知が必要なら記入します。(解除可能)

トラックバックURL http://yusuke.homeip.net/diary/.action?entry=1174231031120