Weblogic如何通過JMX監控JDBC資源(數據源)數據

    今天一同事問到了我這個問題,由於本人對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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章