Weblogic MBean服务器通过JMXConnectorFactory(t3协议)进行远程连接



我试图查看可用的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

最新更新