Hi, As part of my Google SOC project, I've uploaded the JMX code for review in Jira. Please note the following:
The patch addresses the following: 1) Start derby with monitoring extensions enabled. To start derby with monitoring extensions, you need to set derby.jmx environment variable while starting the JVM 2) Derby can be monitored locally or remotely. Password authentication and SSL support is provided via SUN's RMI connector implementations. See the following URL for details http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html 3) The MBeans can be viewed in JConsole. 4) This implementation supports three different MBeans: ->SystemMBean for viewing and changing system properties. Please note that as of now changes are not persisted to derby.properties file ->DatabaseMBean, one per database. Any changes to database properties are persisted. ->VersionMBean for viewing DerbyVersion Information. The code was built using JDK1.6 and uses Sun's PlatformMBean server for exposing system health and Derby's MBeans. The code is up for review and contains the following files: iapi/services/mbeans/ManagementService.java Interface declaration for management service /iapi/services/mbeans/MBeanFactory Factory interface for creating MBeans /impl/services/mbeans/BasicManagementService Management service that starts up MBeanServer and Registry /impl/services/mbeans/BasicMBeanFactory Implementation of MBeanFactory interface /impl/services/mbeans/DerbySystemMBean For exposing derby system properties /impl/services/mbeans/DatabaseMBean For exposing a database's properties and operation for Stopping a database /impl/services/mbeans/mbeans-descriptors.xml MBean descriptor used by Apache Commons modeler framework. tools/jars/mbeansDBMSclass.properties lists the classes, so that they may be included in the derby jar. Minor changes to build files and properties files have also been made to compile the code. 5) The JMX functionality was built using the Apache modeler commons framework available at http://commons.apache.org 6) This patch DOES NOT include any test cases. I will be posting them in a seperate patch, as the test cases themselves will amount to substantial code. 7)API docs are provided with the files. I will *really* appreciate if someone can help me with identifying which properties are System properties, which are database properties and which can be modified at runtime. I referred to iapi.reference.Property.java. However, I felt descriptions for some properties were ambiguous. The next iteration will probably be a fix for such properties. I welcome any comments. Best Regards, Sanket Sharma