Weblogic如何通过JMX监控JDBC资源(数据源)数据

来源:互联网 发布:好看的耽美文知乎 编辑:程序博客网 时间:2024/06/10 05:56

    今天一同事问到了我这个问题,由于本人对Weblogic不太了解,所以决定先尝试一下。

    新建一个数据源,通过传统的Jconsole连接(需要在Weblogic启动参数中配置jmx参数,这里省略),在MBean一栏中 没有找到关于JDBC资源的监控项。



通过查找资料,发现可以通过IIOP访问,步骤如下:


1、在${WLS_HOME}/lib下面执行 java -jar wljarbuilder.jar,生成wlfullclient.jar,拷贝到${WLS_HOME}/ext目录,重启。

2、控制台,域-安全-一般信息,选用“启用匿名管理员查找“,否则没有查找权限,重启。

权限错误如下:

 <Warning> <RMI> <BEA-080003> <RuntimeException thrown by rmi server: weblogic.corba.cos.naming.RootNamingContextImpl.resolve([Lorg.omg.CosNaming.NameComponent;)
 org.omg.CORBA.NO_PERMISSION: User <anonymous> does not have permission on weblogic.management.mbeanservers to perform lookup operation.  vmcid: 0x0  minor code: 0  completed: No.
org.omg.CORBA.NO_PERMISSION: User <anonymous> does not have permission on weblogic.management.mbeanservers to perform lookup operation.  vmcid: 0x0  minor code: 0  completed: No
        at weblogic.corba.cos.naming.NamingContextImpl.throwNamingException(NamingContextImpl.java:512)
        at weblogic.corba.cos.naming.NamingContextImpl.resolve(NamingContextImpl.java:169)
        at weblogic.corba.cos.naming._NamingContextAnyImplBase._invoke(_NamingContextAnyImplBase.java:306)
        at weblogic.corba.idl.CorbaServerRef.invoke(CorbaServerRef.java:249)
        at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
        Truncated. see log file for complete stacktrace

Caused By: javax.naming.NoPermissionException: User <anonymous> does not have permission on weblogic.management.mbeanservers to perform lookup operation.
        at weblogic.jndi.internal.ServerNamingNode.checkPermission(ServerNamingNode.java:443)
        at weblogic.jndi.internal.ServerNamingNode.checkLookup(ServerNamingNode.java:423)
        at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:180)
        at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)
        at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
        Truncated. see log file for complete stacktrace


3、控制台,服务器-协议-IIOP,启用IIOP,默认IIOP用户名和默认IIOP口令改成和管理员一样!否则一直会有权限错误。重启。

权限错误如下:

 <Warning> <RMI> <BEA-080003> <RuntimeException thrown by rmi server: weblogic.corba.cos.naming.RootNamingContextImpl.resolve([Lorg.omg.CosNaming.NameComponent;)
 org.omg.CORBA.NO_PERMISSION: User <anonymous> does not have permission on weblogic.management.mbeanservers to perform lookup operation.  vmcid: 0x0  minor code: 0  completed: No.
org.omg.CORBA.NO_PERMISSION: User <anonymous> does not have permission on weblogic.management.mbeanservers to perform lookup operation.  vmcid: 0x0  minor code: 0  completed: No
        at weblogic.corba.cos.naming.NamingContextImpl.throwNamingException(NamingContextImpl.java:512)
        at weblogic.corba.cos.naming.NamingContextImpl.resolve(NamingContextImpl.java:169)
        at weblogic.corba.cos.naming._NamingContextAnyImplBase._invoke(_NamingContextAnyImplBase.java:306)
        at weblogic.corba.idl.CorbaServerRef.invoke(CorbaServerRef.java:249)
        at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
        Truncated. see log file for complete stacktrace

Caused By: javax.naming.NoPermissionException: User <anonymous> does not have permission on weblogic.management.mbeanservers to perform lookup operation.
        at weblogic.jndi.internal.ServerNamingNode.checkPermission(ServerNamingNode.java:443)
        at weblogic.jndi.internal.ServerNamingNode.checkLookup(ServerNamingNode.java:423)
        at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:180)
        at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)
        at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:214)
        Truncated. see log file for complete stacktrace


4、把${WLS_HOME}/lib下的weblogic.jar和wlfullclient.jar拷贝到D:/weblogic目录。

5、cmd执行

jconsole -J-Djava.class.path=“%JAVA_HOME%/lib/jconsole.jar;%JAVA_HOME%/lib/tools.jar;D:/weblogic/wlfulclient.jar; D:/weblogic/weblogic.jar“ -J-Djmx.remote.protocol.provider.pkgs=weblogic.management.remote

6、弹出Jconsole客户端,远程进程输入“service:jmx:rmi:///jndi/iiop://${WEBLOGIC_IP}:${WEBLOGIC_PORT}/weblogic.management.mbeanservers.runtime”,用户名和密码输入管理员用户名和密码,这里是默认的weblogic和weblogic。

7、连接,切换到Mbean页面。查看JDBC连接信息如下。在这个页面可以动态监测JDBC连接池的连接个数变化。






参考:http://docs.oracle.com/cd/E12840_01/wls/docs103/jmxinst/accesscust.html

0 0
原创粉丝点击