public final class JMXManagementService extends java.lang.Object implements ManagementService, ModuleControl
ManagementService
Modifier and Type | Field and Description |
---|---|
private static SystemPermission |
CONTROL
Control permission (permissions are immutable).
|
private javax.management.MBeanServer |
mbeanServer
Platform MBean server, from ManagementFactory.getPlatformMBeanServer().
|
private javax.management.ObjectName |
myManagementBean
If this object is registered as a management mbean
then myManagementBean represents its name.
|
private javax.management.MBeanServer |
myManagementServer |
private java.util.Map<javax.management.ObjectName,javax.management.StandardMBean> |
registeredMbeans
The set of mbeans registered to this service by
Derby's code.
|
private java.lang.String |
systemIdentifier
Runtime value to disambiguate
multiple Derby systems in the same virtual machine but
different class loaders.
|
DERBY_JMX_DOMAIN
Constructor and Description |
---|
JMXManagementService() |
Modifier and Type | Method and Description |
---|---|
void |
boot(boolean create,
java.util.Properties properties)
Start the management service if derby.system.jmx is true.
|
private void |
checkJMXControl()
Require SystemPermission("jmx", "control") to change
the management state.
|
private void |
findServer()
Initialize the management service by obtaining the platform
MBeanServer and registering system beans.
|
private static ModuleFactory |
getMonitor()
Privileged Monitor lookup.
|
java.lang.String |
getSystemIdentifier()
Get the system identifier that this MBean is managing.
|
boolean |
isManagementActive()
Is Derby's JMX management active.
|
private void |
jmxRegister(javax.management.StandardMBean standardMBean,
javax.management.ObjectName beanName)
Register an mbean with the platform mbean server.
|
private void |
jmxUnregister(javax.management.ObjectName mbeanName)
Unregister an mbean from the JMX plaform server
but leave it registered to this service.
|
java.lang.String |
quotePropertyValue(java.lang.String value)
Quote an MBean key property value, so that it is safe to pass to
ManagementService.registerMBean(T, java.lang.Class<T>, java.lang.String) even if it potentially contains special
characters. |
<T> java.lang.Object |
registerMBean(T bean,
java.lang.Class<T> beanInterface,
java.lang.String keyProperties)
Registers an MBean with the MBean server as a StandardMBean.
|
void |
startManagement()
Inform Derby to start its JMX management by registering
MBeans relevant to its current state.
|
void |
stop()
Stop the module.
|
void |
stopManagement()
Inform Derby to stop its JMX management by unregistering
its MBeans.
|
void |
unregisterMBean(java.lang.Object mbeanIdentifier)
Unregister an mbean using an object previous returned from registerMBean.
|
private void |
unregisterMBean(javax.management.ObjectName mbeanName)
Unregisters an mbean from this service and JMX plaform server
|
private javax.management.MBeanServer mbeanServer
private java.util.Map<javax.management.ObjectName,javax.management.StandardMBean> registeredMbeans
private javax.management.ObjectName myManagementBean
private javax.management.MBeanServer myManagementServer
private java.lang.String systemIdentifier
private static final SystemPermission CONTROL
public void boot(boolean create, java.util.Properties properties) throws StandardException
Starting the service means:
boot
in interface ModuleControl
StandardException
- Module cannot be started.Monitor
,
ModuleFactory
public void stop()
ModuleControl
stop
in interface ModuleControl
Monitor
,
ModuleFactory
private void findServer()
public <T> java.lang.Object registerMBean(T bean, java.lang.Class<T> beanInterface, java.lang.String keyProperties) throws StandardException
registerMBean
in interface ManagementService
bean
- The MBean to wrap with a StandardMBean and registerbeanInterface
- The management interface for the MBean.keyProperties
- The String representation of the MBean's key properties,
they will be added into the ObjectName with Derby's domain. Key
type should be first with a short name for the bean, typically the
class name without the package.StandardException
private void jmxRegister(javax.management.StandardMBean standardMBean, javax.management.ObjectName beanName) throws javax.management.JMException
javax.management.JMException
public void unregisterMBean(java.lang.Object mbeanIdentifier)
unregisterMBean
in interface ManagementService
mbeanIdentifier
- An identifier returned by registerMBean.private void unregisterMBean(javax.management.ObjectName mbeanName)
mbeanName
- Bean to unregister.private void jmxUnregister(javax.management.ObjectName mbeanName)
mbeanName
- public boolean isManagementActive()
ManagementMBean
isManagementActive
in interface ManagementMBean
public void startManagement()
ManagementMBean
Require SystemPermission("jmx", "control")
if a security
manager is installed.
startManagement
in interface ManagementMBean
SystemPermission
public void stopManagement()
ManagementMBean
Require SystemPermission("jmx", "control")
if a security
manager is installed.
stopManagement
in interface ManagementMBean
SystemPermission
private void checkJMXControl()
public java.lang.String getSystemIdentifier()
ManagementMBean
getSystemIdentifier
in interface ManagementMBean
public java.lang.String quotePropertyValue(java.lang.String value)
ManagementService
ManagementService.registerMBean(T, java.lang.Class<T>, java.lang.String)
even if it potentially contains special
characters.quotePropertyValue
in interface ManagementService
value
- the value to quoteObjectName.quote(String)
private static ModuleFactory getMonitor()
Apache Derby V10.13 Internals - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.