我试图查看可用的MBean,以便找到解决方案(访问adminserver jmx并监视域中所有其他服务器的会话/连接等(。Weblogic服务器正在远程服务器上运行。
其想法是创建一个连接到JMX的java脚本,读取域并找到连接的服务器,将连接的服务器列表导出到监控工具,然后每x分钟ping Weblogic mbean服务器,并找出域中每个服务器所需的参数。然而,当我尝试创建到Weblogic JMX的连接时;"无限循环";我认为这意味着一个连接正在反复尝试建立,但没有成功。
管理服务器已经得到了这些参数(启动(:
-XX:+UnlockCommercialFeatures
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9001
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.rmi.port=9001
我有:
- 本地安装的WLS版本:fmw_14.1.1.0.0_WLS_lite_quick_generic
- 将wlthint3client.jar添加到IDEA中的类路径
- 尝试通过cmd中的telnet ping IP:PORT来检查防火墙,该端口肯定是打开的
创建到JMX:的连接的方法
String protocol = "t3";
String jndiroot = "/jndi/";
String mBeanServer = "weblogic.management.mbeanservers.domainruntime";
public MBeanServerConnection getMBeanServerConnection() throws IOException {
return getJmxConnector().getMBeanServerConnection();
}
public JMXConnector getJmxConnector() throws IOException {
JMXServiceURL serviceURL = new JMXServiceURL(protocol, hostname, port, jndiroot + mBeanServer);
Hashtable<String,String> hashtable = new Hashtable<String, String>();
hashtable.put(Context.SECURITY_PRINCIPAL, username);
hashtable.put(Context.SECURITY_CREDENTIALS, password);
hashtable.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "weblogic.management.remote");
System.out.println("MAKING JMX CONNECTION...");
connector = JMXConnectorFactory.connect(serviceURL, hashtable);
System.out.println("JMX CONNECTION MADE...");
return connector;
}
只执行第一次打印。。。
当执行到服务的连接时:jmx:rmi:///jndi/rmi://<WLS_IP>:9001/jmxrmi一切正常,但这不是到MBean服务器的连接,这意味着我无法访问监控服务器域及其流量所需的MBean。
将以下JVM属性添加到服务器实例以访问WebLogic的mbeans:
-Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder