Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EclipseLink/DesignDocs/248748

Design Specification: WebLogic 10.3 JMX MBean Support

Bug# 248748

JMX MBean Tutorial for WebLogic

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

Document History

Date Author Version Description & Notes
2008-09-26 Michael O 0.1 Starting Draft for WebLogic 10.3 version of ER 248748

Project overview

We require specific attributes available outside of the generic MBeans in http://bugs.eclipse.org/235168 ER 235168]. This enhancement request has 2 possible phases - we are only working on phase 1 at this time - port OC4J functions to WebLogic.

  • 1) Add functions originally only available on the OC4J server platform
  • 2) Add functions new to WebLogic 10

Requirements

  • Add the following functions to a WebLogic version of our RuntimeServices Mbean - to be reviewed.
    • We want to cross-reference this new list with the exclusion list in the 1.0 implementation.
    • Some of the attributes prefixed with print have generic analogs using get already.
    • Some of the attributes contain an internal current keyword that is removed.
    • Some of these public functions may not make it to the public interface

Interface Addition Candidates

  • public String getsessionName() {
  • public String getsessionType() {
  • public Object[][] getClassSummaryDetailsUsingFilter(String filter){
  • public Object[][] getClassSummaryDetails() {
  • public Vector getMappedClassNamesUsingFilter(String filter) {
  • public String getmoduleName() {
  • public String getdeployedEclipseLinkLogLevel() {
  • public String getDeployedEclipseLogLevel(String category) {
  • public String getcurrentEclipseLogLevel() {
  • public String getcurrentEclipseLogLevel(String category) {
  • public synchronized void setcurrentEclipseLogLevel(String newLevel) {
  • public synchronized String getprofilingType() {
  • public synchronized void setprofilingType(String profileType) {
  • public void setuseEclipseProfiling() {
  • public void setuseDMSProfiling() {
  • public Boolean getusesEclipseProfiling() { - do not implement
  • public Boolean getusesDMSProfiling() {
  • public void setuseNoProfiling() {
  • public synchronized void setshouldLogPerformanceProfiler(Boolean

shouldLogPerformanceProfiler) {

  • public Boolean getshouldLogPerformanceProfiler() {
  • public Boolean getshouldBindAllParameters() {
  • public Integer getstringBindingSize() {
  • public Boolean getusesBatchWriting() {
  • public Long gettimeConnectionEstablished() {
  • public Boolean getusesJDBCBatchWriting() {
  • public Boolean getusesByteArrayBinding() {
  • public Boolean getusesNativeSQL() {
  • public Boolean getusesStreamsForBinding() {
  • public Boolean getshouldCacheAllStatements() {
  • public Integer getstatementCacheSize() {
  • public synchronized void clearStatementCache() {
  • public Integer getsequencePreallocationSize() {
  • public void printAvailableConnectionPools() {
  • public Integer getMaxSizeForPool(String poolName) {
  • public Integer getMinSizeForPool(String poolName) {
  • public void printClassesInSession() {
  • public void printObjectsInIdentityMap(String className) throws ClassNotFoundException {
  • public void printAllIdentityMapTypes() {
  • public void printObjectsInIdentityMaps() {
  • public Integer getnumberOfObjectsInAllIdentityMaps() {
  • public Integer getnumberOfPersistentClasses() {
  • public void printIdentityMapLocks() {
  • public void printIdentityMapLocks(String registeredClassName) {
  • public void printProfileSummary() {
  • public void printProfileSummaryByClass() {
  • public void printProfileSummaryByQuery() {
  • public String getlogType() {
  • public String getdatabasePlatform() {
  • public synchronized String getconnectionPoolType() {
  • public synchronized String getdriver() {
  • public String getlogFilename() {
  • public synchronized String getdeployedProfileWeight() {
  • public synchronized String getcurrentProfileWeight() {
  • public synchronized void setcurrentProfileWeight(String weight) {
  • public synchronized void initializeAllIdentityMaps() {
  • public synchronized void initializeIdentityMaps(String[] classNames) throws

ClassNotFoundException {

  • public synchronized void initializeIdentityMap(String className) throws

ClassNotFoundException {

  • public synchronized void invalidateAllIdentityMaps() {
  • public synchronized void invalidateIdentityMaps(String[] classNamesParam, Boolean

recurse) throws ClassNotFoundException {

  • public synchronized void invalidateIdentityMap(String className) throws

ClassNotFoundException {

  • public synchronized void invalidateIdentityMap(String className, Boolean recurse) throws

ClassNotFoundException {

  • public Boolean getcacheSynchEnabled() {
  • public Boolean getcacheSynchAsynchronous() {


</pre>

API

No new jar dependencies.

The JMX API is included in J2SE 1.5 (new to J2SE 1.5 from J2EE 1.4) - the interfaces from this JMX API is used even though the implementation uses weblogic specific weblogic.management API during runtime.

There is a JMX server now in the 1.5 SE JRE

J2SE 1.5 JMX

JMX used to be in J2EE 1.4

J2EE 1.4 JMX


UML Class Diagram

Eclipselink uml design jmx.jpg

GUI

<JAVA_HOME>/bin/JConsole client

You should see the following single EclipseLink MBean off the root of the JNDI tree. In this example there is one EAR deployed to WebLogic - with its own set of MBeans based on the login session.

Runtime weblogic specific mbean screen cap.JPG

Runtime weblogic specific mbean screen cap 2b inherited.JPG

Back to the top