当前位置: 代码迷 >> Weblogic >> weblogic 监测,jmx,请求
  详细解决方案

weblogic 监测,jmx,请求

热度:1755   发布时间:2013-02-26 00:00:00.0
weblogic 监测,jmx,请求高手指点
JMXConnector connector = JMXConnectorFactory.connect(serviceURL, (Map<String,String>)h);//连接到MBean Server
MBeanServerConnection connection = connector.getMBeanServerConnection();
ObjectName serRuntime=(ObjectName) runtimeServiceConnection.getAttribute(runtimeON, "ServerRuntime");
weblogic文档中使用jmx远程连接的例子是主要是使用上面主要代码的方式,从weblogic服务的跟找起,我想问一下有没有办法直接访问到某个MBean
而不是从根上一步一步查找.不要使用weblogic8里用的Helper接口获取MBeanHome接口然后在找类型的方法
------最佳解决方案--------------------------------------------------------
查询下Weblogic的接口说明文档
MBeanServerConnection有个方法 queryNames
可以直接找到你要的某个ObjectName 
从而获取到对应的MBean
------其他解决方案--------------------------------------------------------
Spring + JMX
------其他解决方案--------------------------------------------------------
不用任何框架,有办法吗?
------其他解决方案--------------------------------------------------------
根据需求自己写个工具类搞定。
------其他解决方案--------------------------------------------------------
我也想看到,但是不太懂,哎

我用的也是下面的代码

/* 
* 实例化与 Domain Runtime MBean Server 的连接。 
*/ 
private void initConnection(String hostname, String portString, 
String username, String password) throws IOException, 
MalformedURLException 

String protocol = "t3"; 
Integer portInteger = Integer.valueOf(portString); 
int port = portInteger.intValue(); 
String jndiroot = "/jndi/"; 
String mserver = "weblogic.management.mbeanservers.domainruntime"; 
JMXServiceURL serviceURL = new JMXServiceURL(protocol, hostname, port, 
jndiroot + mserver); 
Hashtable<String,String> h = new Hashtable<String,String>(); 
h.put(Context.SECURITY_PRINCIPAL, username); 
h.put(Context.SECURITY_CREDENTIALS, password); 
h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, 
"weblogic.management.remote"); 

//在此JMXConnector对象能够使用之前,必须调用其 connect 方法。但是,由 JMXConnectorFactory.connect 创建的对象已经连接。
connector = JMXConnectorFactory.connect(serviceURL, h); 
connection = connector.getMBeanServerConnection(); 



/* 
* 打印一组 ServerRuntimeMBeans.此 MBean 是运行时 MBean 层次的根,此域中的每个服务器承载自己的实例. 
*/ 
public ObjectName[] getServerRuntimes() throws Exception { 
return (ObjectName[]) connection.getAttribute(service, "ServerRuntimes"); 

  相关解决方案