I've been working with JBoss 3.2.4 HA JMS and there have been some issues that I've
run into that I can't figure out.
I've read the FAQ and done extensive searches pertaining to the exceptions that I'm
seeing and what could cause them. I've taken a step-by-step approach to trying to
figure out what the failure point is, but it appears that there is a timing issue.
My test deployment consists of two message driven beans that are deployed to
server/all/deploy-hasingleton (in a jar), a destinations service xml file (also
deployed to deploy-hasingleton) and a sar containing an MBean that allows me to send
to my queue.
On startup I see a message from the EjbDeployer, indicating that it is deploying my
EJB jar (failovertest-server.jar):
2004-06-23 09:44:30,799 DEBUG [org.jboss.deployment.MainDeployer] Done with create
step of deploying uil2-service.xml
2004-06-23 09:44:30,799 DEBUG [org.jboss.deployment.MainDeployer] create step for
deployment
file:/C:/tools/jboss-3.2.4/server/all/deploy-hasingleton/jms/failovertest-server.jar
2004-06-23 09:44:30,799 DEBUG [org.jboss.ejb.EJBDeployer] create,
failovertest-server.jar
2004-06-23 09:44:30,989 DEBUG [org.jboss.ejb.EJBDeployer] Verifying
file:/C:/tools/jboss-3.2.4/server/all/deploy-hasingleton/jms/failovertest-server.jar
2004-06-23 09:44:31,039 DEBUG [org.jboss.ejb.EJBDeployer.verifier] Bean checked:
FailoverTestMDB: Verified.
2004-06-23 09:44:31,049 DEBUG [org.jboss.ejb.EJBDeployer.verifier] Bean checked:
FailoverTestStatusMDB: Verified.
2004-06-23 09:44:31,049 DEBUG [org.jboss.mx.modelmbean.ModelMBeanInvoker] No
persistence-manager descriptor found, null persistence will be used
2004-06-23 09:44:31,049 DEBUG [org.jboss.jmx.adaptor.snmp.agent.SnmpAgentService] It's
for me: javax.management.MBeanServerNotification:
notificationType=JMX.mbean.registered source=JMImplementation:type=MBeanServerDelegate
seq-no=187 time=1088009071049 message=null
objectName=jboss.j2ee:module=failovertest-server.jar,service=EjbModule userData=null,
handback:2147483647
2004-06-23 09:44:31,049 DEBUG [org.jboss.ejb.EJBDeployer] Deploying:
file:/C:/tools/jboss-3.2.4/server/all/deploy-hasingleton/jms/failovertest-server.jar
2004-06-23 09:44:31,049 DEBUG [org.jboss.system.ServiceController] Creating service
jboss.j2ee:module=failovertest-server.jar,service=EjbModule
2004-06-23 09:44:31,049 DEBUG [org.jboss.ejb.EjbModule] Creating
jboss.j2ee:module=failovertest-server.jar,service=EjbModule
2004-06-23 09:44:31,089 DEBUG [org.jboss.ejb.EjbModule] createService, begin
2004-06-23 09:44:31,089 INFO [org.jboss.ejb.EjbModule] Deploying FailoverTestMDB
2004-06-23 09:44:31,109 DEBUG [org.jboss.ejb.EjbModule] Creating WebClassLoader of
class org.jboss.web.WebClassLoader
2004-06-23 09:44:31,200 WARN [org.jboss.ejb.EjbModule] Could not load the
org.jboss.resource.connectionmanager.CachedConnectionInterceptor interceptor for this
container
javax.management.InstanceNotFoundException: jboss.jca:service=CachedConnectionManager
is not registered.
at
org.jboss.mx.server.registry.BasicMBeanRegistry.get(BasicMBeanRegistry.java:462)
at org.jboss.mx.server.MBeanServerImpl.getAttribute(MBeanServerImpl.java:433)
at
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.(CachedConnectionInterceptor.java:72)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:308)
at java.lang.Class.newInstance(Class.java:261)
at org.jboss.ejb.EjbModule.addInterceptors(EjbModule.java:857)
at org.jboss.ejb.EjbModule.initializeContainer(EjbModule.java:743)
at org.jboss.ejb.EjbModule.createMessageDrivenContainer(EjbModule.java:529)
at org.jboss.ejb.EjbModule.createContainer(EjbModule.java:496)
at org.jboss.ejb.EjbModule.createService(EjbModule.java:316)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:237)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:219)
[...deleted...]
2004-06-23 09:44:31,750 DEBUG [org.jboss.ejb.EjbModule] creating binding for
FailoverTestMDB:singleton-message-driven-bean
2004-06-23 09:44:31,790 INFO [org.jboss.ejb.EjbModule] Deploying FailoverTestStatusMDB
2004-06-23 09:44:31,790 DEBUG [org.jboss.ejb.EjbModule] Creating WebClassLoader of
class org.jboss.web.WebClassLoader
2004-06-23 09:44:31,811 WARN [org.jboss.ejb.EjbModule] Could not load the
org.jboss.resource.connectionmanager.CachedConnectionInterceptor interceptor for this
container
javax.management.InstanceNotFoundException: jboss.jca:service=CachedConnectionManager
is not registered.
at
org.jboss.mx.server.registry.BasicMBeanRegistry.get(BasicMBeanRegistry.java:462)
at org.jboss.mx.server.MBeanServerImpl.getAttribute(MBeanServerImpl.java:433)
at
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.(CachedConnectionInterceptor.java:72)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:308)
at java.lang.Class.newInstance(Class.java:261)
at org.jboss.ejb.EjbModule.addInterceptors(EjbModule.java:857)
at org.jboss.ejb.EjbModule.initializeContainer(EjbModule.java:743)
at org.jboss.ejb.EjbModule.createMessageDrivenContainer(EjbModule.java:529)
at org.jboss.ejb.EjbModule.createContainer(EjbModule.java:496)
at org.jboss.ejb.EjbModule.createService(EjbModule.java:316)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:237)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:219)
[...deleted...]
2004-06-23 09:44:32,552 DEBUG [org.jboss.ejb.EjbModule] creating binding for
FailoverTestStatusMDB:singleton-message-driven-bean
Some time later, when the hasingleton deploys the DLQ tries to attach to this queue
and generates the following exception:
2004-06-23 09:44:33,092 DEBUG [org.jboss.system.ServiceController] starting service
jboss.j2ee:jndiName=local/FailoverTestMDB,service=EJB
2004-06-23 09:44:33,092 DEBUG [org.jboss.ejb.MessageDrivenContainer] Starting
jboss.j2ee:jndiName=local/FailoverTestMDB,service=EJB
2004-06-23 09:44:33,092 DEBUG [org.jboss.ejb.MessageDrivenContainer] Begin
java:comp/env for EJB: FailoverTestMDB
2004-06-23 09:44:33,092 DEBUG [org.jboss.ejb.MessageDrivenContainer] TCL: [EMAIL
PROTECTED]
2004-06-23 09:44:33,102 DEBUG [org.jboss.ejb.MessageDrivenContainer] Binding env
resource: jms/FailoverTestStatus to JDNI ENC as: topic/FailoverTestStatus
2004-06-23 09:44:33,102 DEBUG [org.jboss.ejb.MessageDrivenContainer] End java:comp/env
for EJB: FailoverTestMDB
2004-06-23 09:44:33,102 DEBUG [org.jboss.ejb.plugins.local.BaseLocalProxyFactory]
FailoverTestMDB cannot be Bound, doesn't have local and local home interfaces
2004-06-23 09:44:33,102 DEBUG [org.jboss.system.ServiceController] starting service
jboss.j2ee:binding=singleton-message-driven-bean,jndiName=local/FailoverTestMDB,plugin=invoker,service=EJB
2004-06-23 09:44:33,102 DEBUG [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Starting
jboss.j2ee:binding=singleton-message-driven-bean,jndiName=local/FailoverTestMDB,plugin=invoker,service=EJB
2004-06-23 09:44:33,102 DEBUG [org.jboss.ejb.plugins.jms.JMSContainerInvoker]
Initializing
2004-06-23 09:44:33,102 DEBUG [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Looking
up provider adapter: java:/DefaultJMSProvider
2004-06-23 09:44:33,102 DEBUG [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Provider
adapter: [EMAIL PROTECTED]
2004-06-23 09:44:33,112 DEBUG [org.jboss.ejb.plugins.jms.DLQHandler] Creating
DLQHandler
2004-06-23 09:44:33,803 DEBUG [org.jboss.ha.framework.server.HAPartitionImpl]
dests=[], method_call=HAJNDI.lookupLocally(XAConnectionFactory), mode=2, timeout=60000
2004-06-23 09:44:33,803 DEBUG [org.jboss.ha.framework.server.HAPartitionImpl]
destination list is non-null and empty: no need to send message
2004-06-23 09:44:33,813 ERROR [org.jboss.ejb.plugins.jms.DLQHandler] Initialization
failed DLQHandler
javax.jms.JMSException: Error creating the dlq connection: XAConnectionFactory
at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:171)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:237)
at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:164)
at
org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerCreate(JMSContainerInvoker.java:542)
at
org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService(JMSContainerInvoker.java:764)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:271)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:221)
[...deleted...]
This exception is documented on the Wiki as well as the FAQ and the usual reason is
that the PersistenceManager is improperly configured or that the PersistenceManager is
not correctly configured to work with it. However I used the default hsqldb
persistence without change and got these same exceptions.
I have deployed the firebirdsql.rar and the firebird-ds.xml files as per the
docs/examples and the tests that I've run are correct: Firebird is correctly deployed
and JMS is configured to use the FirebirdDS.
On a slower machine that I'm using as a clustered node the exceptions do not occur,
leading me to believe that this is a timing issue and that the CachedConnectionManager
has been initialized behind the scenes before the deployer gets to the MDB deployment.
I probably need to insert a dependency somewhere to make this happen, but I'm at a
loss to discover where. The deployment, regardless of these exceptions, does start up
and work correctly. It processes messages to the queue, posts a notification to a
topic and fails over correctly. I'm just worried about the exceptions and how to
correct them so that they do not mask actual problems.
I tried adding a dependency on CachedConnectionManager into the conf/jboss-service.xml
file (dependency from the jboss.ejb:service=EJBDeployer to the
CachedConnectionManager), and that worked; this reinforces my opinion that there is a
missing dependency somewhere. I just don't think that modifying the "global"
conf/jboss-service.xml is the correct thing to do.
Does the XSL deployer fail to rewrite the deployment file correctly with all
dependencies maybe? From what I understand the XSL deployer should add elements to
my deployment files so that the proper dependencies are listed in accordance with my
configuration. Perhaps I'm wrong, but I'd like to know.
Any help that can be provided is most appreciated.
- Drew
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3839684#3839684
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3839684
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user