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.
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= | |
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== | |
− | + | ===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=== | |
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=== | |
*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== | |
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== | |
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== | |
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
Contents
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.
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.
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.
References
EclipseLink User Guide documentation on setting up JMX access
EclipseLink JMX configuration in Workbench
http://wiki.eclipse.org/Configuring_a_Session_%28ELUG%29#Configuring_the_Server_Platform