db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marco (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-3887) Embedded Derby fails under JBoss because of JMX-related conflicts
Date Mon, 06 Oct 2008 14:23:44 GMT

    [ 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.


Mime
View raw message