Sunday, November 11, 2012

KM: WebLogic - การใช้งาน jconsole เพื่อ connect ไปยัง WebLogic JVM

การใช้งาน jconsole เพื่อ connect ไปยัง WebLogic JVM


Problem

jconsole สามารถใช้เป็นเครื่องมือในการ monitor jvm behavior ได้ในระดับหนึ่ง โดยแนวทางที่จะเสนอนี้เป็นการแก้ปัญหาการใช้ jconsole เพื่อไป monitor jmx component บน remote WebLogic Server (version 10.3.x) ซึ่งถึงแม้จะระบุ parameter เพื่อเปิด jconsole ขึ้นมา ก็ยังได้ error no permission

## Command to start jconsole for WebLogic Server
prompt>jconsole -J-Djava.class.path=%JAVA_HOME%/lib/jconsole.jar;%JAVA_HOME%/lib/tools.jar;C:/bea_103/wlserver_10.3/server/lib/wljmxclient.jar -J-Djmx.remote.protocol.provider.pkgs=weblogic.management.remote -debug

## Error message
Caused by: javax.naming.NamingException: Unhandled exception in lookup [Root exception is org.omg.CORBA.NO_PERMISSION:   vmcid: 0x0  minor code: 0  completed: No] at weblogic.corba.j2ee.naming.Utils.wrapNamingException(Utils.java:83) at weblogic.corba.j2ee.naming.ContextImpl.lookup(ContextImpl.java:232) at weblogic.corba.j2ee.naming.ContextImpl.lookup(ContextImpl.java:168) at javax.naming.InitialContext.lookup(InitialContext.java:392) at weblogic.management.remote.common.ClientProviderBase.makeConnection(ClientProviderBase.java:144) ... 6 more

จากที่ลองหาข้อมูล พบว่าเป็นเรื่องของการ mapping credential info ตอนที่ jconsole จะไป browse jndi tree เพื่อเข้าถึง jmx

Assumption

ปัญหาเกิดจากการใช้งาน WebLogic Server 10.3.0

Troubleshooting

  1. download ตาม link t3jconsole.jar
  2. สร้าง WebLogic full client jar ตาม command ด้านล่างก็จะได้ file ที่ชื่อว่า wlfullclient.jar
  3. เปิดใช้งาน jmx agent โดยสามารถ download file ที่เกี่ยวข้อง ตาม link jmx.zip -Dcom.sun.management.config.file=%SOME_PATH%/jmx/management.properties
  4. เปิด jconsole ด้วย command ตามด้านล่าง
    prompt>jconsole -J-Djava.class.path=C:/bea_103/wlserver_10.3/server/lib/t3jconsole.jar;%JAVA_HOME%/lib/jconsole.jar;%JAVA_HOME%/lib/tools.jar;C:/bea_103/wlserver_10.3/server/lib/wlfullclient.jar -J-Djmx.remote.protocol.provider.pkgs=fr.xebia.jmx.remote  -debug
  5. ใส่ input parameter เพื่อต่อไปยัง remote WebLogic
    Remote url=service:jmx:t3://[host]:[port]/jndi/weblogic.management.mbeanservers.runtime Username=usernamePassword=password
  6. ใส่ข้อมูล remote JVM
    ตัวอย่างหน้าการใช้งาน (ไม่ได้เปิดจาก remote JVM แต่เหมือนกัน)


No comments:

Post a Comment