Skip to Main Content

Java Database Connectivity (JDBC)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

SEVERE: Error while registering Oracle JDBC Diagnosability MBean

Shawn ClowaterAug 30 2007 — edited Jan 12 2010
I get the following when using the 11g JDBC driver (ojdbc6.jar) when the OracleDriver class is accessed multiple times within the same JVM

[dbunit] Aug 30, 2007 9:12:44 AM oracle.jdbc.driver.OracleDriver registerMBeans
[dbunit] SEVERE: Error while registering Oracle JDBC Diagnosability MBean.
[dbunit] javax.management.InstanceAlreadyExistsException: com.oracle.jdbc:type=diagnosability,name=java.net.URLClassLoader@14318bb
[dbunit] at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453)
[dbunit] at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerInterceptor.java:1484)
[dbunit] at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:963)
[dbunit] at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:917)
[dbunit] at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:312)
[dbunit] at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482)
[dbunit] at oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:305)
[dbunit] at oracle.jdbc.driver.OracleDriver$1.run(OracleDriver.java:213)
[dbunit] at java.security.AccessController.doPrivileged(Native Method)
[dbunit] at oracle.jdbc.driver.OracleDriver.<clinit>(OracleDriver.java:209)
[dbunit] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[dbunit] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
[dbunit] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
[dbunit] at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
[dbunit] at java.lang.Class.newInstance0(Class.java:355)
[dbunit] at java.lang.Class.newInstance(Class.java:308)
[dbunit] at org.dbunit.ant.DbUnitTask.createConnection(DbUnitTask.java:340)
[dbunit] at org.dbunit.ant.DbUnitTask.execute(DbUnitTask.java:266)
[dbunit] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[dbunit] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[dbunit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[dbunit] at java.lang.reflect.Method.invoke(Method.java:597)
[dbunit] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[dbunit] at org.apache.tools.ant.Task.perform(Task.java:348)
[dbunit] at org.apache.tools.ant.Target.execute(Target.java:357)
[dbunit] at org.apache.tools.ant.Target.performTasks(Target.java:385)
[dbunit] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
[dbunit] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
[dbunit] at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
[dbunit] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
[dbunit] at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
[dbunit] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[dbunit] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
[dbunit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[dbunit] at java.lang.reflect.Method.invoke(Method.java:597)
[dbunit] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[dbunit] at org.apache.tools.ant.Task.perform(Task.java:348)
[dbunit] at org.apache.tools.ant.Target.execute(Target.java:357)
[dbunit] at org.apache.tools.ant.Target.performTasks(Target.java:385)
[dbunit] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
[dbunit] at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
[dbunit] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[dbunit] at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
[dbunit] at org.apache.tools.ant.Main.runBuild(Main.java:698)
[dbunit] at org.apache.tools.ant.Main.startAnt(Main.java:199)
[dbunit] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
[dbunit] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)

In our case we're calling multiple DB operations within the same build file and then after the 1st call we encounter that error for every operation.

It doesn't fail anything but it would seem that there is a static block in the OracleDriver class that tries to register the MBean every time it is touched whether or not it was previously registered.

Might consider a flag or some check to prevent this every time as it made some people skittish when they encountered it, lol.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 8 2010
Added on Aug 30 2007
33 comments
67,989 views