[
https://issues.apache.org/jira/browse/DERBY-3887?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12637102#action_12637102
]
Marco commented on DERBY-3887:
------------------------------
We - http://www.jfire.org - have the same problem and assume that it is a
caused by the deployment configuration: Because we use Derby for JBoss'
messaging (JBossMQ), we have to put derby.jar into the lib directory (otherwise
the JBossMQ fails with exceptions). However, the JMX seems to be in JBoss'
deploy directory and therefore Derby has no chance to ever find the class
(didn't verify this - just an assumption).
Additionally, it might be a problem with timing: When Derby is loaded, maybe
the JMX is not yet started?
I don't know the best solution to this problem, but I know that we don't need
JMX. That's why we deactivated this line mentioned above. However, patching a
libraries JAR is not a nice way. Therefore, I'd like to ask for another - more
convenient solution:
1) Instead of an exception, it should simply log a warning and continue (JMX
isn't really essential - is it?).
2) It should be possible to provide a system property which deactivates the JMX
hooking on startup (to get rid of the WARN log).
In the long run, it would be nice to have a clean solution that takes the said
problems (deployment location + timing) into account.
> Embedded Derby fails under JBoss because of JMX-related conflicts
> -----------------------------------------------------------------
>
> Key: DERBY-3887
> URL: https://issues.apache.org/jira/browse/DERBY-3887
> Project: Derby
> Issue Type: Bug
> Components: JMX
> Affects Versions: 10.4.2.0
> Environment: Windows XP SP2, JBoss 4.2.3.GA, Embedder Derby 10.4.2.0.
> Also tested with JBoss 5.0.0.CR2 with the same result.
> Reporter: Valery Khromov
> Priority: Critical
>
> I'm trying to use embedded Derby as datasource for JBoss and found that it
> fails with error.
> See stacktrace below.
> It looks like JMX module in Derby conflicts with JBoss JMX.
> After I have disabled Derby JMX removing
> "derby.module.mgmt.jmx=org.apache.derby.impl.services.jmx.JMXManagementService"
> line from org\apache\derby\modules.properties file in derby.jar JAR, the bug
> disappears.
> How to reproduce the issue:
> 1). Install JBoss
> 2). Copy jboss\docs\examples\varia\derby-plugin.jar into
> jboss\server\default\lib
> 3). Copy Derby JAR (derby.jar) into jboss\server\default\lib
> 4). Copy datasource file into jboss\server\default\lib
> 5). Start JBoss using bin\run.bat
> Datasource file (zzzzz-ds.xml):
> ==={{{
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE datasources
> PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
> "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">
> <datasources>
> <local-tx-datasource>
> <jndi-name>zzzzzDatasource</jndi-name>
> <driver-class>org.apache.derby.jdbc.EmbeddedDriver</driver-class>
>
> <!--connection-url>jdbc:derby:${jboss.server.data.dir}{/}derby{/}zzzzz;create=true</connection-url-->
> <connection-url>jdbc:derby:IGNORED</connection-url>
> <user-name>IGNORED</user-name>
> <password>IGNORED</password>
> <min-pool-size>5</min-pool-size>
> <max-pool-size>20</max-pool-size>
> <idle-timeout-minutes>5</idle-timeout-minutes>
> <track-statements/>
> <depends>jboss:service=zzzzzDerbyDB</depends>
> </local-tx-datasource>
>
> <!-- Don't forget to install derby-plugin.jar and derby*.jar into
> jboss/server/default/lib -->
> <mbean code="org.jboss.jdbc.DerbyDatabase"
> name="jboss:service=zzzzzDerbyDB">
> <attribute name="Database">zzzzz</attribute>
> <attribute name="User">sa</attribute>
> <attribute name="Password"></attribute>
> </mbean>
> </datasources>
> ===}}}
> Part of JBoss log with error and stacktrace:
> ==={{{
> 02:40:28,031 INFO [DerbyDatabase] starting derby
> jdbc:derby:C:\opt\jboss-4.2.3.GA\server\default\data/derby/zzzzz;create=true
> 02:40:28,468 WARN [ServiceController] Problem starting service
> jboss:service=zzzzzDerbyDB
> java.lang.ExceptionInInitializerError
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:247)
> at org.jboss.jdbc.DerbyDatabase.getConnection(DerbyDatabase.java:222)
> at org.jboss.jdbc.DerbyDatabase.startService(DerbyDatabase.java:189)
> at
> org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
> at
> org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
> at
> org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at
> org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> at
> org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
> at $Proxy0.start(Unknown Source)
> at
> org.jboss.system.ServiceController.start(ServiceController.java:417)
> at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
> at
> org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at
> org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> at $Proxy4.start(Unknown Source)
> at org.jboss.deployment.SARDeployer.start(SARDeployer.java:304)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at
> org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at
> org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at
> org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at
> org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> at $Proxy42.start(Unknown Source)
> at org.jboss.deployment.XSLSubDeployer.start(XSLSubDeployer.java:197)
> at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
> at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
> at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
> at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at
> org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at
> org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at
> org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at
> org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> at $Proxy9.deploy(Unknown Source)
> at
> org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
> at
> org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
> at
> org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
> at
> org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)
> at
> org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
> at
> org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
> at
> org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at
> org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> at
> org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
> at $Proxy0.start(Unknown Source)
> at
> org.jboss.system.ServiceController.start(ServiceController.java:417)
> at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
> at
> org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at
> org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> at $Proxy4.start(Unknown Source)
> at org.jboss.deployment.SARDeployer.start(SARDeployer.java:304)
> at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
> at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
> at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
> at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
> at
> org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at
> org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at
> org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at
> org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
> at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
> at $Proxy5.deploy(Unknown Source)
> at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
> at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
> at org.jboss.Main.boot(Main.java:200)
> at org.jboss.Main$1.run(Main.java:508)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: javax.management.JMRuntimeException: Failed to load
> MBeanServerBuilder class org.jboss.mx.server.MBeanServerBuilderImpl:
> java.lang.ClassNotFoundException: org/jboss/mx/server/MBeanServerBuilderImpl
> at
> javax.management.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java:480)
> at
> javax.management.MBeanServerFactory.getNewMBeanServerBuilder(MBeanServerFactory.java:511)
> at
> javax.management.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:298)
> at
> javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:213)
> at
> javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:174)
> at
> sun.management.ManagementFactory.createPlatformMBeanServer(ManagementFactory.java:302)
> at
> java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:504)
> at
> org.apache.derby.impl.services.jmx.JMXManagementService$3.run(Unknown Source)
> at
> org.apache.derby.impl.services.jmx.JMXManagementService$3.run(Unknown Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.derby.impl.services.jmx.JMXManagementService.findServer(Unknown
> Source)
> at
> org.apache.derby.impl.services.jmx.JMXManagementService.boot(Unknown Source)
> at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown
> Source)
> at
> org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source)
> at
> org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source)
> at
> org.apache.derby.iapi.services.monitor.Monitor.startSystemModule(Unknown
> Source)
> at
> org.apache.derby.impl.services.monitor.BaseMonitor.runWithState(Unknown
> Source)
> at org.apache.derby.impl.services.monitor.FileMonitor.<init>(Unknown
> Source)
> at
> org.apache.derby.iapi.services.monitor.Monitor.startMonitor(Unknown Source)
> at org.apache.derby.iapi.jdbc.JDBCBoot.boot(Unknown Source)
> at org.apache.derby.jdbc.EmbeddedDriver.boot(Unknown Source)
> at org.apache.derby.jdbc.EmbeddedDriver.<clinit>(Unknown Source)
> ... 110 more
> Caused by: java.lang.ClassNotFoundException:
> org/jboss/mx/server/MBeanServerBuilderImpl
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:169)
> at
> javax.management.MBeanServerFactory.loadBuilderClass(MBeanServerFactory.java:427)
> at
> javax.management.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java:465)
> ... 131 more
> 02:40:29,250 INFO [ConnectionFactoryBindingService] Bound ConnectionManager
> 'jboss.jca:service=DataSourceBinding,name=DefaultDS' to JNDI name
> 'java:DefaultDS'
> 02:40:29,562 INFO [A] Bound to JNDI name: queue/A
> 02:40:29,562 INFO [B] Bound to JNDI name: queue/B
> 02:40:29,562 INFO [C] Bound to JNDI name: queue/C
> 02:40:29,562 INFO [D] Bound to JNDI name: queue/D
> 02:40:29,578 INFO [ex] Bound to JNDI name: queue/ex
> 02:40:29,593 INFO [testTopic] Bound to JNDI name: topic/testTopic
> 02:40:29,593 INFO [securedTopic] Bound to JNDI name: topic/securedTopic
> 02:40:29,609 INFO [testDurableTopic] Bound to JNDI name:
> topic/testDurableTopic
> 02:40:29,609 INFO [testQueue] Bound to JNDI name: queue/testQueue
> 02:40:29,656 INFO [UILServerILService] JBossMQ UIL service available at :
> /127.0.0.1:8093
> 02:40:29,703 INFO [DLQ] Bound to JNDI name: queue/DLQ
> 02:40:29,875 INFO [ConnectionFactoryBindingService] Bound ConnectionManager
> 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name
> 'java:JmsXA'
> 02:40:30,093 INFO [TomcatDeployer] deploy, ctxPath=/jmx-console,
> warUrl=.../deploy/jmx-console.war/
> 02:40:30,250 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
> --- MBeans waiting for other MBeans ---
> ObjectName: jboss:service=zzzzzDerbyDB
> State: FAILED
> Reason: java.lang.ExceptionInInitializerError
> Depends On Me:
> jboss.jca:service=ManagedConnectionFactory,name=zzzzzDatasource
> --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
> ObjectName: jboss:service=zzzzzDerbyDB
> State: FAILED
> Reason: java.lang.ExceptionInInitializerError
> Depends On Me:
> jboss.jca:service=ManagedConnectionFactory,name=zzzzzDatasource
> 02:40:30,656 INFO [Http11AprProtocol] Starting Coyote HTTP/1.1 on
> http-127.0.0.1-8080
> 02:40:30,687 INFO [AjpAprProtocol] Starting Coyote AJP/1.3 on
> ajp-127.0.0.1-8009
> 02:40:30,703 INFO [Server] JBoss (MX MicroKernel) [4.2.3.GA (build:
> SVNTag=JBoss_4_2_3_GA date=200807181439)] Started in 23s:375ms
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.