Skip navigation links

Oracle Fusion Middleware Java API Reference for Oracle TopLink
11g Release 1 (11.1.1)

E28847-01


org.eclipse.persistence.services
Class RuntimeServices

java.lang.Object
  extended by org.eclipse.persistence.services.RuntimeServices

Direct Known Subclasses:
GlassfishRuntimeServices, JBossRuntimeServices, MBeanRuntimeServices, WebLogicRuntimeServices, WebSphereRuntimeServices

public abstract class RuntimeServices
extends java.lang.Object

Purpose: Provide a dynamic interface into the EclipseLink Session.

Description: This class is meant to provide a framework for gaining access to configuration of the EclipseLink Session during runtime. It will provide the basis for development of a JMX service and possibly other frameworks.


Field Summary
private  SessionLog deployedSessionLog
          This contains the session log from server startup time.
private  int deployedSessionProfileWeight
          This is the profile weight at server startup time.
protected static java.lang.String EclipseLink_Product_Name
           
 java.lang.String objectName
           
protected static java.lang.String PLATFORM_NAME
          Short name for the server platform - Must override in subclass
protected  Session session
          stores access to the session object that we are controlling

 

Constructor Summary
RuntimeServices()
          Default Constructor
RuntimeServices(Session session)
          Constructor

 

Method Summary
 void addNewConnectionPool(java.lang.String poolName, int maxSize, int minSize, java.lang.String platform, java.lang.String driverClassName, java.lang.String url, java.lang.String userName, java.lang.String password)
          This method provides client with access to add a new connection pool to a EclipseLink ServerSession.
private  javax.management.openmbean.TabularData buildClassSummaryDetails()
          INTERNAL: Provide an instance of TabularData containing information about all classes in the session.
private  javax.management.openmbean.TabularData buildClassSummaryDetailsUsingFilter(java.lang.String filter)
          INTERNAL: Provide an instance of TabularData containing information about the classes in the session whose class names match the provided filter.
private  javax.management.openmbean.CompositeType buildCompositeTypeForClassSummaryDetails()
          INTERNAL: Answer the CompositeType describing the CompositeData that we return for each IdentityMap (or subclass).
private  javax.management.openmbean.CompositeData buildDetailsFor(java.lang.String mappedClassName, javax.management.openmbean.CompositeType detailsType)
          INTERNAL: Answer the CompositeData containing the cache details for the given mappedClassName This uses a CompositeDataSupport, which implements CompositeData
private  java.util.HashMap buildLowlevelDetailsFor(java.lang.String mappedClassName)
          INTERNAL: Helper to build a HashMap to help in the construction of a CompositeData
private  javax.management.openmbean.TabularType buildTabularTypeForClassSummaryDetails()
          INTERNAL: Answer the TabularType describing the TabularData that we return from getCacheSummaryDetails() and getCacheSummaryDetails(String filter) This is mostly for the client side to see what kind of information is returned.
 void clearStatementCache()
          Used to clear the statement cache.
 java.lang.String getApplicationName()
          getApplicationName(): Answer the name of the module (EAR name) that this session is associated with.
 java.util.List getAvailableConnectionPools()
          This method will return the available Connection pools within this Server Session
protected  java.lang.String getCacheTypeFor(java.lang.Class identityMapClass)
          INTERNAL: getCacheTypeFor: Give a more UI-friendly version of the cache type
 java.util.List getClassesInSession()
          This method is used to return those Class Names that have identity Maps in the Session.
 java.lang.Object[][] getClassSummaryDetails()
          PUBLIC: Provide an instance of 2 Dimensional Array simulating tabular format information about all classes in the session.
 java.util.List<ClassSummaryDetailBase> getClassSummaryDetailsArray()
          Provide a list of instance of ClassSummaryDetail containing information about all classes in the session.
 java.lang.Object[][] getClassSummaryDetailsUsingFilter(java.lang.String filter)
          Provide an instance of 2 Dimensional Array simulating tabular format information about all classes in the session whose class names match the provided filter.
 java.util.List<ClassSummaryDetailBase> getClassSummaryDetailsUsingFilterArray(java.lang.String filter)
          Provide a list of instance of ClassSummaryDetail containing information about the classes in the session whose class names match the provided filter.
 java.lang.String getConnectionPoolType()
          Return connection pool type.
 java.lang.String getCurrentEclipseLinkLogLevel()
          PUBLIC: Answer the EclipseLink log level that is changeable.
 java.lang.String getDatabasePlatform()
          Return the database platform used by the DatabaseSession.
 java.lang.String getDeployedEclipseLinkLogLevel()
          PUBLIC: Answer the EclipseLink log level at deployment time.
 SessionLog getDeployedSessionLog()
           
 int getDeployedSessionProfileWeight()
           
 java.lang.String getDriver()
          Return db driver class name.
 java.lang.String getJdbcConnectionDetails()
          Return JDBCConnection detail information.
 java.lang.String getLogFilename()
          Return the log filename.
 int getLogLevel(java.lang.String category)
           Return the log level
private  int getLogLevelForName(java.lang.String levelName)
          INTERNAL: Answer the log level for the given name.
 java.lang.String getLogType()
          Return the log type, either "EclipseLink", "Java" or the simple name of the logging class used.
private  java.util.Vector getMappedClassNames()
          INTERNAL: Answer the fully qualified names of the classes mapped in the session.
 java.util.Vector getMappedClassNamesUsingFilter(java.lang.String filter)
          INTERNAL: This method traverses the EclipseLink descriptors and returns a Vector of the descriptor's reference class names that match the provided filter.
 java.lang.Integer getMaxSizeForPool(java.lang.String poolName)
          This method will retrieve the max size of a particular connection pool
 java.lang.Integer getMinSizeForPool(java.lang.String poolName)
          This method will retrieve the min size of a particular connection pool
 java.lang.String getModuleName()
          getModuleName(): Answer the name of the context-root of the application that this session is associated with.
private  java.lang.String getNameForLogLevel(int logLevel)
          INTERNAL: Answer the name for the log level given.
 java.lang.Integer getNumberOfObjectsInAllIdentityMaps()
          This method will SUM and return the number of objects in all Identity Maps in the session.
 java.lang.Integer getNumberOfObjectsInIdentityMap(java.lang.String className)
          This method is used to return the number of objects in a particular Identity Map
 java.lang.Integer getNumberOfObjectsInIdentityMapSubCache(java.lang.String className)
          This method is used to return the number of objects in a particular Identity Map's subcache.
 java.lang.Integer getNumberOfPersistentClasses()
          This method will answer the number of persistent classes contained in the session.
 java.lang.String getObjectName()
           
 java.util.List getObjectsInIdentityMap(java.lang.String className)
          This method will return a collection of the objects in the Identity Map.
 java.util.List getObjectsInIdentityMapSubCacheAsMap(java.lang.String className)
          This method is used to return a Map of the objects in a particular Identity Map's subcache.
 int getProfileWeight()
          Return the DMS sensor weight
 java.lang.String getProfilingType()
          This method is used to get the type of profiling.
 int getSequencePreallocationSize()
          Method returns the value of the Sequence Preallocation size
protected  org.eclipse.persistence.internal.sessions.AbstractSession getSession()
          INTERNAL:
 java.lang.String getSessionName()
          Answer the name of the EclipseLink session this MBean represents.
 java.lang.String getSessionType()
          Answer the type of the EclipseLink session this MBean represents.
 java.lang.Boolean getShouldBindAllParameters()
          Method returns if all Parameters should be bound or not
 boolean getShouldCacheAllStatements()
          Returns if statements should be cached or not
 boolean getShouldLogMessages()
          This method is used to determine if logging is turned on
 boolean getShouldLogPerformanceProfiler()
          Method indicates if Performance profile should be logged
 boolean getShouldProfilePerformance()
          This method will return if profiling is turned on or not
 java.util.List getSizeForPool(java.lang.String poolName)
          This method will retrieve the size of a particular connection pool
 int getStatementCacheSize()
          Returns the statement cache size.
 java.lang.Integer getStringBindingSize()
          Return the size of strings after which will be bound into the statement If we are not using a DatabaseLogin, or we're not using string binding, answer 0 (zero).
 java.lang.Long getTimeConnectionEstablished()
          This method will return a long indicating the exact time in Milliseconds that the session connected to the database.
 java.lang.Boolean getUsesBatchWriting()
          This method will return if batchWriting is in use or not.
 java.lang.Boolean getUsesByteArrayBinding()
          Shows if Byte Array Binding is turned on or not
 java.lang.Boolean getUsesEclipseLinkProfiling()
          This method answers true if EclipseLink Performance Profiling is on.
 java.lang.Boolean getUsesJDBCBatchWriting()
          This method will return if batchWriting is in use or not.
 java.lang.Boolean getUsesNativeSQL()
          Shows if native SQL is being used
 java.lang.Boolean getUsesStreamsForBinding()
          This method indicates if streams are being used for binding
 java.lang.Boolean getUsesStringBinding()
          This method indicates if Strings are being bound
 void initializeAllIdentityMaps()
          This method is used to initialize the identity maps in the session.
 void initializeIdentityMap(java.lang.String className)
          This method is used to initialize the identity maps specified by className.
 void initializeIdentityMaps(java.lang.String[] classNames)
          This method is used to initialize the identity maps specified by the Vector of classNames.
 void invalidateAllIdentityMaps()
          This method is used to invalidate the identity maps in the session.
 void invalidateIdentityMap(java.lang.String className)
          This method is used to invalidate the identity maps specified by className.
 void invalidateIdentityMap(java.lang.String className, java.lang.Boolean recurse)
          This method is used to invalidate the identity maps specified by className.
 void invalidateIdentityMaps(java.lang.String[] classNamesParam, java.lang.Boolean recurse)
          This method is used to invalidate the identity maps specified by the String[] of classNames.
 boolean isJPASession()
          Return whether this session is an EclipseLink JPA session.
 void printAllIdentityMapTypes()
          This method will log the types of Identity Maps in the session.
 void printAvailableConnectionPools()
          This method will print the available Connection pools to the SessionLog.
 void printClassesInSession()
          This method is used to output those Class Names that have identity Maps in the Session.
 void printIdentityMapLocks()
          This method will log the instance level locks in all Identity Maps in the session.
 void printIdentityMapLocks(java.lang.String registeredClassName)
          This method will log the instance level locks in the Identity Map for the given class in the session.
 void printObjectsInIdentityMap(java.lang.String className)
          This method will log the objects in the Identity Map.
 void printObjectsInIdentityMaps()
          This method will log all objects in all Identity Maps in the session.
 void printProfileSummary()
          This method assumes EclipseLink Profiling (as opposed to Java profiling).
 void printProfileSummaryByClass()
          This method assumes EclipseLink Profiling (as opposed to Java profiling).
 void printProfileSummaryByQuery()
          This method assumes EclipseLink Profiling (as opposed to Java profiling).
 void resetAllConnections()
          This method is used to reset connections from the session to the database.
 void setCurrentEclipseLinkLogLevel(java.lang.String newLevel)
          PUBLIC: Set the EclipseLink log level to be used at runtime.
 void setLogLevel(int level)
           Set the log level
 void setProfileWeight(int weight)
          This method is used to change DMS sensor weight.
 void setProfilingType(java.lang.String profileType)
          This method is used to select the type of profiling.
 void setSequencePreallocationSize(int size)
          This method provide access for setting the sequence pre-allocation size
protected  void setSession(org.eclipse.persistence.internal.sessions.AbstractSession newSession)
          INTERNAL: Define the session that this instance is providing runtime services for
 void setShouldCacheAllStatements(boolean shouldCacheAllStatements)
          Method used to set if statements should be cached.
 void setShouldLogPerformanceProfiler(boolean shouldLogPerformanceProfiler)
          This method is used to turn on Profile logging when using the Performance Profiler
 void setShouldProfilePerformance(boolean shouldProfile)
          This method is used to turn on Performance Profiling
 void setStatementCacheSize(int size)
          Used to set the statement cache size.
 void setUseEclipseLinkProfiling()
          This method is used to turn on EclipseLink Performance Profiling
 void setUseNoProfiling()
          This method is used to turn off all Performance Profiling, DMS or EclipseLink.
 boolean shouldLog(int Level, java.lang.String category)
           Check if a message of the given level would actually be logged.
private  java.lang.Object[][] tabularDataTo2DArray(javax.management.openmbean.TabularData tdata, java.lang.String[] names)
          INTERNAL: Convert the TabularData to a two-dimensional array
private  java.lang.String trimProfileString(java.lang.String originalProfileString)
          INTERNAL: utility method to get rid of leading and trailing {}'s
protected  void updateDeploymentTimeData()
          INTERNAL: Define the deployment time data associated with logging and profiling
 void updatePoolSize(java.lang.String poolName, int maxSize, int minSize)
          This method allows the client to set the pool size for a particular pool, based on the pool name

 

Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

 

Field Detail

session

protected Session session
stores access to the session object that we are controlling

deployedSessionProfileWeight

private int deployedSessionProfileWeight
This is the profile weight at server startup time. This is read-only

deployedSessionLog

private SessionLog deployedSessionLog
This contains the session log from server startup time. This is read-only.

objectName

public java.lang.String objectName

EclipseLink_Product_Name

protected static final java.lang.String EclipseLink_Product_Name
See Also:
Constant Field Values

PLATFORM_NAME

protected static java.lang.String PLATFORM_NAME
Short name for the server platform - Must override in subclass

Constructor Detail

RuntimeServices

public RuntimeServices()
Default Constructor

RuntimeServices

public RuntimeServices(Session session)
Constructor
Parameters:
session - the session to be used with these RuntimeServices

Method Detail

getSession

protected org.eclipse.persistence.internal.sessions.AbstractSession getSession()
INTERNAL:

getSessionName

public java.lang.String getSessionName()
Answer the name of the EclipseLink session this MBean represents.

getShouldLogMessages

public boolean getShouldLogMessages()
This method is used to determine if logging is turned on

setShouldProfilePerformance

public void setShouldProfilePerformance(boolean shouldProfile)
This method is used to turn on Performance Profiling

getShouldProfilePerformance

public boolean getShouldProfilePerformance()
This method will return if profiling is turned on or not

setShouldLogPerformanceProfiler

public void setShouldLogPerformanceProfiler(boolean shouldLogPerformanceProfiler)
This method is used to turn on Profile logging when using the Performance Profiler

getShouldLogPerformanceProfiler

public boolean getShouldLogPerformanceProfiler()
Method indicates if Performance profile should be logged

setShouldCacheAllStatements

public void setShouldCacheAllStatements(boolean shouldCacheAllStatements)
Method used to set if statements should be cached. Please note that Statements can not be cached when using an external connection pool

setStatementCacheSize

public void setStatementCacheSize(int size)
Used to set the statement cache size. This is only valid if using cached Statements

getStatementCacheSize

public int getStatementCacheSize()
Returns the statement cache size. Only valid if statements are being cached

setSequencePreallocationSize

public void setSequencePreallocationSize(int size)
This method provide access for setting the sequence pre-allocation size

getSequencePreallocationSize

public int getSequencePreallocationSize()
Method returns the value of the Sequence Preallocation size

updatePoolSize

public void updatePoolSize(java.lang.String poolName,
                           int maxSize,
                           int minSize)
This method allows the client to set the pool size for a particular pool, based on the pool name
Parameters:
poolName - the name of the pool to be updated.
maxSize - the new maximum number of connections
minSize - the new minimum number of connections

getAvailableConnectionPools

public java.util.List getAvailableConnectionPools()
This method will return the available Connection pools within this Server Session
Returns:
java.util.List the available pools.

getSizeForPool

public java.util.List getSizeForPool(java.lang.String poolName)
This method will retrieve the size of a particular connection pool
Parameters:
poolName - the name of the pool to get the size for
Returns:
java.util.List a list containing two values. The first value is the Maximun size of the pool. The second value is the Minimum size of the pool.

addNewConnectionPool

public void addNewConnectionPool(java.lang.String poolName,
                                 int maxSize,
                                 int minSize,
                                 java.lang.String platform,
                                 java.lang.String driverClassName,
                                 java.lang.String url,
                                 java.lang.String userName,
                                 java.lang.String password)
                          throws java.lang.ClassNotFoundException
This method provides client with access to add a new connection pool to a EclipseLink ServerSession.
Parameters:
poolName - the name of the new pool
maxSize - the maximum number of connections in the pool
minSize - the minimum number of connections in the pool
platform - the fully qualified name of the EclipseLink platform to use with this pool.
driverClassName - the fully qualified name of the JDBC driver class
url - the URL of the database to connect to
userName - the user name to connect to the database with
password - the password to connect to the database with
Throws:
java.lang.ClassNotFoundException - if any of the class names are misspelled.

resetAllConnections

public void resetAllConnections()
This method is used to reset connections from the session to the database. Please Note that this will not work with a SessionBroker at this time

getClassesInSession

public java.util.List getClassesInSession()
This method is used to return those Class Names that have identity Maps in the Session. Please note that SubClasses and aggregates will be missing form this list as they do not have separate identity maps.
Returns:
java.util.List contains all of the classes which have identity maps in the current session.

getObjectsInIdentityMap

public java.util.List getObjectsInIdentityMap(java.lang.String className)
                                       throws java.lang.ClassNotFoundException
This method will return a collection of the objects in the Identity Map. There is no particular order to these objects.
Parameters:
className - the fully qualified classname of the class to the instances of
Throws:
thrown - then the IdentityMap for that class name could not be found
java.lang.ClassNotFoundException

getNumberOfObjectsInIdentityMap

public java.lang.Integer getNumberOfObjectsInIdentityMap(java.lang.String className)
                                                  throws java.lang.ClassNotFoundException
This method is used to return the number of objects in a particular Identity Map
Parameters:
className - the fully qualified name of the class to get number of instances of.
Throws:
thrown - then the IdentityMap for that class name could not be found
java.lang.ClassNotFoundException

getObjectsInIdentityMapSubCacheAsMap

public java.util.List getObjectsInIdentityMapSubCacheAsMap(java.lang.String className)
                                                    throws java.lang.ClassNotFoundException
This method is used to return a Map of the objects in a particular Identity Map's subcache. Only works for those identity Maps with a sub cache (ie Hard Cache Weak Identity Map) This method replaces getObjectsInIdentityMapSubCache(className) which returns a list instead of a Map
Parameters:
className - the fully qualified name of the class to get number of instances of.
Throws:
thrown - then the IdentityMap for that class name could not be found
java.lang.ClassNotFoundException

getNumberOfObjectsInIdentityMapSubCache

public java.lang.Integer getNumberOfObjectsInIdentityMapSubCache(java.lang.String className)
                                                          throws java.lang.ClassNotFoundException
This method is used to return the number of objects in a particular Identity Map's subcache. Only works for those identity Maps with a sub cache (ie Hard Cache Weak Identity Map)
Parameters:
className - the fully qualified name of the class to get number of instances of.
Throws:
thrown - then the IdentityMap for that class name could not be found
java.lang.ClassNotFoundException

getLogLevel

public int getLogLevel(java.lang.String category)

Return the log level

Parameters:
category - the string representation of an EclipseLink category, e.g. "sql", "transaction" ...
Returns:
the log level

setLogLevel

public void setLogLevel(int level)

Set the log level

Parameters:
level - the new log level

shouldLog

public boolean shouldLog(int Level,
                         java.lang.String category)

Check if a message of the given level would actually be logged.

Parameters:
level - the log request level
category - the string representation of an EclipseLink category
Returns:
true if the given message level will be logged

getProfileWeight

public int getProfileWeight()
Return the DMS sensor weight
Returns:

setProfileWeight

public void setProfileWeight(int weight)
This method is used to change DMS sensor weight.

initializeIdentityMap

public void initializeIdentityMap(java.lang.String className)
                           throws java.lang.ClassNotFoundException
This method is used to initialize the identity maps specified by className.
Parameters:
className - the fully qualified classnames identifying the identity map to initialize
Throws:
java.lang.ClassNotFoundException

printIdentityMapLocks

public void printIdentityMapLocks()
This method will log the instance level locks in all Identity Maps in the session.

printIdentityMapLocks

public void printIdentityMapLocks(java.lang.String registeredClassName)
This method will log the instance level locks in the Identity Map for the given class in the session.

printProfileSummary

public void printProfileSummary()
This method assumes EclipseLink Profiling (as opposed to Java profiling). This will log at the INFO level a summary of all elements in the profile.

trimProfileString

private java.lang.String trimProfileString(java.lang.String originalProfileString)
INTERNAL: utility method to get rid of leading and trailing {}'s

printProfileSummaryByClass

public void printProfileSummaryByClass()
This method assumes EclipseLink Profiling (as opposed to Java profiling). This will log at the INFO level a summary of all elements in the profile, categorized by Class.

printProfileSummaryByQuery

public void printProfileSummaryByQuery()
This method assumes EclipseLink Profiling (as opposed to Java profiling). This will log at the INFO level a summary of all elements in the profile, categorized by Query.

getProfilingType

public java.lang.String getProfilingType()
This method is used to get the type of profiling. Possible values are: "EclipseLink" or "None".

setProfilingType

public void setProfilingType(java.lang.String profileType)
This method is used to select the type of profiling. Valid values are: "EclipseLink" or "None". These values are not case sensitive. null is considered to be "None".

setUseEclipseLinkProfiling

public void setUseEclipseLinkProfiling()
This method is used to turn on EclipseLink Performance Profiling

setUseNoProfiling

public void setUseNoProfiling()
This method is used to turn off all Performance Profiling, DMS or EclipseLink.

getUsesEclipseLinkProfiling

public java.lang.Boolean getUsesEclipseLinkProfiling()
This method answers true if EclipseLink Performance Profiling is on.

getDeployedEclipseLinkLogLevel

public java.lang.String getDeployedEclipseLinkLogLevel()
PUBLIC: Answer the EclipseLink log level at deployment time. This is read-only.

getCurrentEclipseLinkLogLevel

public java.lang.String getCurrentEclipseLinkLogLevel()
PUBLIC: Answer the EclipseLink log level that is changeable. This does not affect the log level in the project (i.e. The next time the application is deployed, changes are forgotten)

setCurrentEclipseLinkLogLevel

public void setCurrentEclipseLinkLogLevel(java.lang.String newLevel)
PUBLIC: Set the EclipseLink log level to be used at runtime. This does not affect the log level in the project (i.e. The next time the application is deployed, changes are forgotten)
Parameters:
String - newLevel: new log level

getNameForLogLevel

private java.lang.String getNameForLogLevel(int logLevel)
INTERNAL: Answer the name for the log level given.
Returns:
String (one of OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL)

getLogLevelForName

private int getLogLevelForName(java.lang.String levelName)
INTERNAL: Answer the log level for the given name.
Returns:
int for OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL

updateDeploymentTimeData

protected void updateDeploymentTimeData()
INTERNAL: Define the deployment time data associated with logging and profiling

getDeployedSessionProfileWeight

public int getDeployedSessionProfileWeight()

getDeployedSessionLog

public SessionLog getDeployedSessionLog()

getObjectName

public java.lang.String getObjectName()

isJPASession

public boolean isJPASession()
Return whether this session is an EclipseLink JPA session. The absence of this function or a value of false will signify that the session belongs to a provider other than EclipseLink.
Returns:

getSessionType

public java.lang.String getSessionType()
Answer the type of the EclipseLink session this MBean represents. Types include: "ServerSession", "DatabaseSession", "SessionBroker"

getClassSummaryDetailsUsingFilter

public java.lang.Object[][] getClassSummaryDetailsUsingFilter(java.lang.String filter)
Provide an instance of 2 Dimensional Array simulating tabular format information about all classes in the session whose class names match the provided filter. The 2 Dimensional array contains each item with values being row object array. Each row object array represents EclipseLink class details info with respect to below attributes: ["Class Name", "Parent Class Name", "Cache Type", "Configured Size", "Current Size"]

getClassSummaryDetails

public java.lang.Object[][] getClassSummaryDetails()
PUBLIC: Provide an instance of 2 Dimensional Array simulating tabular format information about all classes in the session. The 2 Dimensional array contains each item with values being row object array. Each row object array represents EclipseLink class details info with respect to below attributes: ["Class Name", "Parent Class Name", "Cache Type", "Configured Size", "Current Size"]

getMappedClassNames

private java.util.Vector getMappedClassNames()
INTERNAL: Answer the fully qualified names of the classes mapped in the session. This uses the mappedClass from the CMPPolicy.
Returns:
java.util.Vector

getMappedClassNamesUsingFilter

public java.util.Vector getMappedClassNamesUsingFilter(java.lang.String filter)
INTERNAL: This method traverses the EclipseLink descriptors and returns a Vector of the descriptor's reference class names that match the provided filter. The filter is a comma separated list of strings to match against.
Parameters:
filter - A comma separated list of strings to match against.
Returns:
A Vector of class names that match the filter.

getCacheTypeFor

protected java.lang.String getCacheTypeFor(java.lang.Class identityMapClass)
INTERNAL: getCacheTypeFor: Give a more UI-friendly version of the cache type

getModuleName

public java.lang.String getModuleName()
getModuleName(): Answer the name of the context-root of the application that this session is associated with. Answer "unknown" if there is no module name available. Default behavior is to return "unknown" - we override this behavior here for WebLogic.

getApplicationName

public java.lang.String getApplicationName()
getApplicationName(): Answer the name of the module (EAR name) that this session is associated with. Answer "unknown" if there is no application name available. Default behavior is to return "unknown" - we override this behavior here for all platform implementors of JMXEnabledPlatform

getShouldBindAllParameters

public java.lang.Boolean getShouldBindAllParameters()
Method returns if all Parameters should be bound or not

getStringBindingSize

public java.lang.Integer getStringBindingSize()
Return the size of strings after which will be bound into the statement If we are not using a DatabaseLogin, or we're not using string binding, answer 0 (zero).

getUsesBatchWriting

public java.lang.Boolean getUsesBatchWriting()
This method will return if batchWriting is in use or not.

getTimeConnectionEstablished

public java.lang.Long getTimeConnectionEstablished()
This method will return a long indicating the exact time in Milliseconds that the session connected to the database.

getUsesJDBCBatchWriting

public java.lang.Boolean getUsesJDBCBatchWriting()
This method will return if batchWriting is in use or not.

getUsesByteArrayBinding

public java.lang.Boolean getUsesByteArrayBinding()
Shows if Byte Array Binding is turned on or not

getUsesNativeSQL

public java.lang.Boolean getUsesNativeSQL()
Shows if native SQL is being used

getUsesStreamsForBinding

public java.lang.Boolean getUsesStreamsForBinding()
This method indicates if streams are being used for binding

getUsesStringBinding

public java.lang.Boolean getUsesStringBinding()
This method indicates if Strings are being bound

getShouldCacheAllStatements

public boolean getShouldCacheAllStatements()
Returns if statements should be cached or not

clearStatementCache

public void clearStatementCache()
Used to clear the statement cache. Only valid if statements are being cached

printAvailableConnectionPools

public void printAvailableConnectionPools()
This method will print the available Connection pools to the SessionLog.

getMaxSizeForPool

public java.lang.Integer getMaxSizeForPool(java.lang.String poolName)
This method will retrieve the max size of a particular connection pool
Parameters:
poolName - the name of the pool to get the max size for
Returns:
Integer for the max size of the pool. Return -1 if pool doesn't exist.

getMinSizeForPool

public java.lang.Integer getMinSizeForPool(java.lang.String poolName)
This method will retrieve the min size of a particular connection pool
Parameters:
poolName - the name of the pool to get the min size for
Returns:
Integer for the min size of the pool. Return -1 if pool doesn't exist.

printClassesInSession

public void printClassesInSession()
This method is used to output those Class Names that have identity Maps in the Session. Please note that SubClasses and aggregates will be missing from this list as they do not have separate identity maps.

printObjectsInIdentityMap

public void printObjectsInIdentityMap(java.lang.String className)
                               throws java.lang.ClassNotFoundException
This method will log the objects in the Identity Map. There is no particular order to these objects.
Parameters:
className - the fully qualified classname identifying the identity map
Throws:
thrown - then the IdentityMap for that class name could not be found
java.lang.ClassNotFoundException

printAllIdentityMapTypes

public void printAllIdentityMapTypes()
This method will log the types of Identity Maps in the session.

printObjectsInIdentityMaps

public void printObjectsInIdentityMaps()
This method will log all objects in all Identity Maps in the session.

getNumberOfObjectsInAllIdentityMaps

public java.lang.Integer getNumberOfObjectsInAllIdentityMaps()
This method will SUM and return the number of objects in all Identity Maps in the session.

getNumberOfPersistentClasses

public java.lang.Integer getNumberOfPersistentClasses()
This method will answer the number of persistent classes contained in the session. This does not include aggregates.

getLogType

public java.lang.String getLogType()
Return the log type, either "EclipseLink", "Java" or the simple name of the logging class used.
Returns:
the log type

getDatabasePlatform

public java.lang.String getDatabasePlatform()
Return the database platform used by the DatabaseSession.
Returns:
String databasePlatform

getJdbcConnectionDetails

public java.lang.String getJdbcConnectionDetails()
Return JDBCConnection detail information. This includes URL and datasource information.

getConnectionPoolType

public java.lang.String getConnectionPoolType()
Return connection pool type. Values include: "Internal", "External" and "N/A".

getDriver

public java.lang.String getDriver()
Return db driver class name. This only applies to DefaultConnector. Return "N/A" otherwise.

getLogFilename

public java.lang.String getLogFilename()
Return the log filename. This returns the fully qualified path of the log file when EclipseLink DefaultSessionLog instance is used. Null is returned otherwise.
Returns:
String logFilename

initializeAllIdentityMaps

public void initializeAllIdentityMaps()
This method is used to initialize the identity maps in the session.

initializeIdentityMaps

public void initializeIdentityMaps(java.lang.String[] classNames)
                            throws java.lang.ClassNotFoundException
This method is used to initialize the identity maps specified by the Vector of classNames.
Parameters:
classNames - String[] of fully qualified classnames identifying the identity maps to initialize
Throws:
java.lang.ClassNotFoundException

invalidateAllIdentityMaps

public void invalidateAllIdentityMaps()
This method is used to invalidate the identity maps in the session.

invalidateIdentityMaps

public void invalidateIdentityMaps(java.lang.String[] classNamesParam,
                                   java.lang.Boolean recurse)
                            throws java.lang.ClassNotFoundException
This method is used to invalidate the identity maps specified by the String[] of classNames.
Parameters:
classNames - String[] of fully qualified classnames identifying the identity maps to invalidate
recurse - Boolean indicating if we want to invalidate the children identity maps too
Throws:
java.lang.ClassNotFoundException

invalidateIdentityMap

public void invalidateIdentityMap(java.lang.String className)
                           throws java.lang.ClassNotFoundException
This method is used to invalidate the identity maps specified by className. This does not invalidate the children identity maps
Parameters:
className - the fully qualified classname identifying the identity map to invalidate
Throws:
java.lang.ClassNotFoundException

invalidateIdentityMap

public void invalidateIdentityMap(java.lang.String className,
                                  java.lang.Boolean recurse)
                           throws java.lang.ClassNotFoundException
This method is used to invalidate the identity maps specified by className.
Parameters:
className - the fully qualified classname identifying the identity map to invalidate
recurse - Boolean indicating if we want to invalidate the children identity maps too
Throws:
java.lang.ClassNotFoundException

tabularDataTo2DArray

private java.lang.Object[][] tabularDataTo2DArray(javax.management.openmbean.TabularData tdata,
                                                  java.lang.String[] names)
                                           throws java.lang.Exception
INTERNAL: Convert the TabularData to a two-dimensional array
Parameters:
tdata - the TabularData to be converted
names - the order of the columns
Returns:
a two-dimensional array
Throws:
java.lang.Exception

setSession

protected void setSession(org.eclipse.persistence.internal.sessions.AbstractSession newSession)
INTERNAL: Define the session that this instance is providing runtime services for
Parameters:
Session - session The session to be used with these RuntimeServices

buildCompositeTypeForClassSummaryDetails

private javax.management.openmbean.CompositeType buildCompositeTypeForClassSummaryDetails()
                                                                                   throws javax.management.openmbean.OpenDataException
INTERNAL: Answer the CompositeType describing the CompositeData that we return for each IdentityMap (or subclass). This is mostly for the client side to see what kind of information is returned.
Returns:
javax.management.openmbean.CompositeType
Throws:
javax.management.openmbean.OpenDataException

getClassSummaryDetailsUsingFilterArray

public java.util.List<ClassSummaryDetailBase> getClassSummaryDetailsUsingFilterArray(java.lang.String filter)
Provide a list of instance of ClassSummaryDetail containing information about the classes in the session whose class names match the provided filter. ClassSummaryDetail is a model specific class that can be used internally by the Portable JMX Framework to convert class attribute to JMX required open type, it has:- 1. model specific type that needs to be converted : ["Class Name", "Parent Class Name", "Cache Type", "Configured Size", "Current Size"] 2. convert methods.
Parameters:
filter - A comma separated list of strings to match against.
Returns:
A ArrayList of instance of ClassSummaryDetail containing class information for the class names that match the filter.

getClassSummaryDetailsArray

public java.util.List<ClassSummaryDetailBase> getClassSummaryDetailsArray()
Provide a list of instance of ClassSummaryDetail containing information about all classes in the session. ClassSummaryDetail is a model specific class that can be used internally by the Portable JMX Framework to convert class attribute to JMX required open type, it has:- 1. model specific type that needs to be converted : ["Class Name", "Parent Class Name", "Cache Type", "Configured Size", "Current Size"] 2. convert methods.
Returns:
A List of instance of ClassSummaryDetail objects containing class information for the class names that match the filter.

buildTabularTypeForClassSummaryDetails

private javax.management.openmbean.TabularType buildTabularTypeForClassSummaryDetails()
                                                                               throws javax.management.openmbean.OpenDataException
INTERNAL: Answer the TabularType describing the TabularData that we return from getCacheSummaryDetails() and getCacheSummaryDetails(String filter) This is mostly for the client side to see what kind of information is returned.
Returns:
javax.management.openmbean.TabularType
Throws:
javax.management.openmbean.OpenDataException

buildDetailsFor

private javax.management.openmbean.CompositeData buildDetailsFor(java.lang.String mappedClassName,
                                                                 javax.management.openmbean.CompositeType detailsType)
                                                          throws java.lang.Exception
INTERNAL: Answer the CompositeData containing the cache details for the given mappedClassName This uses a CompositeDataSupport, which implements CompositeData
Parameters:
String - mappedClassName: fullyQualified class name of the class
CompositeType - detailsType: describes the format of the returned CompositeData
Returns:
javax.management.openmbean.CompositeData
Throws:
java.lang.Exception

buildLowlevelDetailsFor

private java.util.HashMap buildLowlevelDetailsFor(java.lang.String mappedClassName)
INTERNAL: Helper to build a HashMap to help in the construction of a CompositeData
Parameters:
String - mappedClassName: fullyQualified class name of the class
Returns:
HashMap

buildClassSummaryDetailsUsingFilter

private javax.management.openmbean.TabularData buildClassSummaryDetailsUsingFilter(java.lang.String filter)
INTERNAL: Provide an instance of TabularData containing information about the classes in the session whose class names match the provided filter. The TabularData contains rowData with values being CompositeData(s) CompositeData has: CompositeType: column names are ["Class Name", "Parent Class Name", "Cache Type", "Configured Size", "Current Size"] Each CompositeData can have get(myColumnName) sent to it.
Parameters:
filter - A comma separated list of strings to match against.
Returns:
A TabularData of information for the class names that match the filter.

buildClassSummaryDetails

private javax.management.openmbean.TabularData buildClassSummaryDetails()
INTERNAL: Provide an instance of TabularData containing information about all classes in the session. The TabularData contains rowData with values being CompositeData(s) CompositeData has: CompositeType: column names are ["Class Name", "Parent Class Name", "Cache Type", "Configured Size", "Current Size"] Each CompositeData can have get(myColumnName) sent to it.

Skip navigation links

Copyright © 1998, 2012, Oracle. All Rights Reserved.