MacとJavaと映画と


最近のエントリー


最近のレスポンス
Re: 帯状疱疹
おぉ、聞いたことないけれども何かとかかっ...

Re: 帯状疱疹
家のカミサンもなったことがあります。 早くよくなるといいですね。

Re: 帯状疱疹
うーん、仲間がいると思うと気が休まります...

Re: 帯状疱疹
聞いたことなかったですけど、結構かかる人...

Re: 帯状疱疹
私もかかったことあるんでわかりますが,結...

Re: 帯状疱疹
ご愁傷様です。早くよくなられることを願っ...

Re: 麗しのサブリナ
やっぱりヘップバーンはいいですねー

Re: 麗しのサブリナ
ひさしぶりに侍ズムを開いたら、私の入り込...

Re: ドコモが iモード ID 発表
おさいふケータイの iD と勘違いしました。まぎわらしい。

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 サービスの概要

タグ : ,