db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-3887) Embedded Derby fails under JBoss because of JMX-related conflicts
Date Thu, 18 Jun 2009 00:08:07 GMT

     [ https://issues.apache.org/jira/browse/DERBY-3887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Kathey Marsden updated DERBY-3887:
----------------------------------

    Attachment: derby-3887_test_attempt_diff.txt

I found that I am able to make a JUnit test based on the repro which will fail without my
change but pass with it, but I can only get it to fail (with the old code) if it is run as
the first test.   If other tests booting derby are run prior to this one in the same JVM,
I think a successful call to getPlatformMBeanServer() has already been made and thus registered,
so the call to getPlatformMBeanServer() is successful.

I did not immediately see a way to clear the platformMBeanServer.  Please let me know if you
know of one.  Otherwise I think I will work on trying to make a call to launch a Junit test
in another JVM, which I need for the store recover tests anyway.

Attached is derby-3887_test_attempt_diff.txt with my initial attempt.



> 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
>            Assignee: Kathey Marsden
>            Priority: Critical
>             Fix For: 10.4.2.1, 10.5.1.2, 10.6.0.0
>
>         Attachments: derby-3887_diff.txt, derby-3887_test_attempt_diff.txt, Derby3887.java
>
>
> 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