Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/Examples/JMX/MBeans WebLogic"

m (EclipseLink JMX MBean support in WebLogic)
m (EclipseLink JMX MBean support in WebLogic)
Line 1: Line 1:
==EclipseLink JMX MBean support in WebLogic==
+
=EclipseLink JMX MBean support in WebLogic=
 
The API discussed here has been checked in as part of enhancements [[http://wiki.eclipse.org/EclipseLink/DesignDocs/235168 235168]]
 
The API discussed here has been checked in as part of enhancements [[http://wiki.eclipse.org/EclipseLink/DesignDocs/235168 235168]]
 
[[http://wiki.eclipse.org/EclipseLink/DesignDocs/248748 248748]]
 
[[http://wiki.eclipse.org/EclipseLink/DesignDocs/248748 248748]]
Line 5: Line 5:
 
EclipseLink supports JMX MBean access to runtime and development attributes/functions against JPA container managed applications running on WebLogic server.
 
EclipseLink supports JMX MBean access to runtime and development attributes/functions against JPA container managed applications running on WebLogic server.
  
===Tutorial Source===
+
==Public API - For Designers==
 +
Note: some of the attribute functionality in the JMX MBean API for WebLogic 10.3 - specifically '''moduleName''' and '''applicationName''' are only available in build 20081015 and later of WebLogic 10.3.3.1.
 +
 
 +
The following JMX MBean public API is exposed by the EclipseLink runtime services MBean and is available to any JMX compliant client.
 +
 
 +
From your MBeanServer on WebLogic 10.3.3.1 get an implementation of [http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/services/weblogic/MBeanWebLogicRuntimeServices.java org.eclipse.persistence.services.weblogic.MBeanWebLogicRuntimeServices] which extends [http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/services/weblogic/WebLogicRuntimeServices.java WebLogicRuntimeServices] and implements the interface [http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/foundation/org.eclipse.persistence.core/src/org/eclipse/persistence/services/weblogic/MBeanWebLogicRuntimeServicesMBean.java MBeanWebLogicRuntimeServicesMBean] in the same package.
 +
 
 +
 
 +
==Tutorial Source==
 
See the 4 SVN projects that will populate your database and run a JEE JPA application on WebLogic 10.3 so that an EclipseLink JPA session is exposed for JMX MBean access.
 
See the 4 SVN projects that will populate your database and run a JEE JPA application on WebLogic 10.3 so that an EclipseLink JPA session is exposed for JMX MBean access.
  
Line 14: Line 22:
 
[http://bugs.eclipse.org/243585 JPA EAR WebLogic 10.3 J2EE application and J2SE table populator Eclipse project zip files]
 
[http://bugs.eclipse.org/243585 JPA EAR WebLogic 10.3 J2EE application and J2SE table populator Eclipse project zip files]
  
===Prerequisites===
+
==Prerequisites==
====Setting Breakpoints====
+
===Setting Breakpoints===
 
The eclipselink.jar deployed in $WEBLOGIC_HOME/modules/org.eclipse.persistence_1.0.0.0_1-0.jar will need a source attachment.  The fastest way is to set a breakpoint on org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.undeploy(), point to the src jar or your workspace projects and redeploy.  Any breakpoints in the predeploy or prior to the first login will now be hit.
 
The eclipselink.jar deployed in $WEBLOGIC_HOME/modules/org.eclipse.persistence_1.0.0.0_1-0.jar will need a source attachment.  The fastest way is to set a breakpoint on org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.undeploy(), point to the src jar or your workspace projects and redeploy.  Any breakpoints in the predeploy or prior to the first login will now be hit.
  
====Enabling remote access on the WebLogic JVM====
+
===Enabling remote access on the WebLogic JVM===
 
Add the following JVM option to your WebLogic startup script
 
Add the following JVM option to your WebLogic startup script
 
<pre>
 
<pre>
Line 33: Line 41:
 
</pre>
 
</pre>
  
====Configuring WebLogic Server Domain Security====
+
===Configuring WebLogic Server Domain Security===
 
*If you are running your MBeans unsecured or in a development environment - you will need to disable security to see them outside of WebLogic
 
*If you are running your MBeans unsecured or in a development environment - you will need to disable security to see them outside of WebLogic
 
*Select the [[http://localhost:7001/consolehelp/console-help.portal?_nfpb=true&_pageLabel=page&helpId=Securitysecuritydomaindomainconfiggeneraltitle#security.domain.domainconfiggeneral.securityconfiguration.anonymousadminlookupenabled.label Anonymous Admin Lookup Enabled checkbox]] on the admin console security tab and restart. (Or you will get the following security warning).
 
*Select the [[http://localhost:7001/consolehelp/console-help.portal?_nfpb=true&_pageLabel=page&helpId=Securitysecuritydomaindomainconfiggeneraltitle#security.domain.domainconfiggeneral.securityconfiguration.anonymousadminlookupenabled.label Anonymous Admin Lookup Enabled checkbox]] on the admin console security tab and restart. (Or you will get the following security warning).
Line 41: Line 49:
 
</pre>
 
</pre>
 
[[Image:Weblogic103_console_jmx_anon_security.jpg]]
 
[[Image:Weblogic103_console_jmx_anon_security.jpg]]
===JMX MBeans via SE Client===
+
==JMX MBeans via SE Client==
 
See the [http://java.sun.com/docs/books/tutorial/jmx/remote/custom.html SUN JMX Tutorial].
 
See the [http://java.sun.com/docs/books/tutorial/jmx/remote/custom.html SUN JMX Tutorial].
  
 
For Java6 only - A proxy can be used to invoke methods on the MBean via JMX.newMBeanProxy().
 
For Java6 only - A proxy can be used to invoke methods on the MBean via JMX.newMBeanProxy().
  
===JMX MBeans via JConsole===
+
==JMX MBeans via JConsole==
 
The standard SUN JDK <JAVA_HOME>/bin/jconsole.exe application can be used to view the MBeans exposed by the WebLogic server JVM instance.
 
The standard SUN JDK <JAVA_HOME>/bin/jconsole.exe application can be used to view the MBeans exposed by the WebLogic server JVM instance.
  
Line 57: Line 65:
 
[[Image:Eclipselink_jmx_mbeans_in_jconsole.jpg]]
 
[[Image:Eclipselink_jmx_mbeans_in_jconsole.jpg]]
  
===References===
+
==References==
 
EclipseLink User Guide documentation on setting up JMX access
 
EclipseLink User Guide documentation on setting up JMX access
  

Revision as of 11:21, 6 November 2008

EclipseLink JMX MBean support in WebLogic

The API discussed here has been checked in as part of enhancements [235168] [248748]

EclipseLink supports JMX MBean access to runtime and development attributes/functions against JPA container managed applications running on WebLogic server.

Public API - For Designers

Note: some of the attribute functionality in the JMX MBean API for WebLogic 10.3 - specifically moduleName and applicationName are only available in build 20081015 and later of WebLogic 10.3.3.1.

The following JMX MBean public API is exposed by the EclipseLink runtime services MBean and is available to any JMX compliant client.

From your MBeanServer on WebLogic 10.3.3.1 get an implementation of org.eclipse.persistence.services.weblogic.MBeanWebLogicRuntimeServices which extends WebLogicRuntimeServices and implements the interface MBeanWebLogicRuntimeServicesMBean in the same package.


Tutorial Source

See the 4 SVN projects that will populate your database and run a JEE JPA application on WebLogic 10.3 so that an EclipseLink JPA session is exposed for JMX MBean access.

http://wiki.eclipse.org/EclipseLink/Examples/JPA/WebLogic_Web_Tutorial#Tutorial_Source

or

JPA EAR WebLogic 10.3 J2EE application and J2SE table populator Eclipse project zip files

Prerequisites

Setting Breakpoints

The eclipselink.jar deployed in $WEBLOGIC_HOME/modules/org.eclipse.persistence_1.0.0.0_1-0.jar will need a source attachment. The fastest way is to set a breakpoint on org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.undeploy(), point to the src jar or your workspace projects and redeploy. Any breakpoints in the predeploy or prior to the first login will now be hit.

Enabling remote access on the WebLogic JVM

Add the following JVM option to your WebLogic startup script

C:\opt\wls103\user_projects\domains\base_domain\bin\startWebLogic.cmd
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dcom.sun.management.jmxremote

System properties to enable EclipseLink MBeans

MBean registration is enabled by adding one or both of the two mbean system properties If [eclipselink.register.dev.mbean] or [eclipselink.register.run.mbean] properties are missing then MBean registration will not proceed for that bean.

rem set JAVA_OPTIONS=%JAVA_OPTIONS% -Declipselink.register.dev.mbean=true
rem set JAVA_OPTIONS=%JAVA_OPTIONS% -Declipselink.register.run.mbean=true

Configuring WebLogic Server Domain Security

  • If you are running your MBeans unsecured or in a development environment - you will need to disable security to see them outside of WebLogic
  • Select the [Anonymous Admin Lookup Enabled checkbox] on the admin console security tab and restart. (Or you will get the following security warning).
[EL Warning]: 2008.06.19 13:37:01.875--Thread(Thread[[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--Failed to find MBean Server: javax.naming.NoPermissionException: 
User <anonymous> does not have permission on weblogic.management.home to perform lookup operation. 

Weblogic103 console jmx anon security.jpg

JMX MBeans via SE Client

See the SUN JMX Tutorial.

For Java6 only - A proxy can be used to invoke methods on the MBean via JMX.newMBeanProxy().

JMX MBeans via JConsole

The standard SUN JDK <JAVA_HOME>/bin/jconsole.exe application can be used to view the MBeans exposed by the WebLogic server JVM instance.

Start jconsole at the run|cmd prompt and select the running weblogic.Server local process.

Jconsole attach to weblogic server jvm.jpg

You should see the following EclipseLink MBeans off the root of the JNDI tree. In this example there are 2 separate EARs deployed to WebLogic - each with its own set of MBeans based on the login session.

Eclipselink jmx mbeans in jconsole.jpg

References

EclipseLink User Guide documentation on setting up JMX access

http://wiki.eclipse.org/Integrating_EclipseLink_with_an_Application_Server_(ELUG)#How_to_Integrate_JMX

EclipseLink JMX configuration in Workbench

http://wiki.eclipse.org/Configuring_a_Session_%28ELUG%29#Configuring_the_Server_Platform

Back to the top