Generic JMS Resource adapter startup order
samhain May 21, 2014 11:00 AMI have deployed and configured the Generic JMS resource adapter in my EAP 6.1 server under the standalone-full.xml resource-adapters subsystem.
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">
<resource-adapters>
<resource-adapter id="generic-jms-ra.rar">
<archive>
generic-jms-ra.rar
</archive>
<transaction-support>NoTransaction</transaction-support>
<connection-definitions>
<connection-definition class-name="org.jboss.resource.adapter.jms.JmsManagedConnectionFactory" jndi-name="java:/GenericJmsXA" enabled="true" use-java-context="true" pool-name="GenericJmsXA" use-ccm="true">
<config-property name="JndiParameters">
java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory;java.naming.provider.url=tcp://X.X.X.X:7222,tcp://X.X.X.X:7222
</config-property>
<config-property name="ConnectionFactory">
QueueConnectionFactory
</config-property>
<pool>
<min-pool-size>0</min-pool-size>
<max-pool-size>50</max-pool-size>
<prefill>false</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<application/>
</security>
</connection-definition>
</connection-definitions>
</resource-adapter>
</resource-adapters>
</subsystem>
I'm able to leverage this connection factory without issue in a WAR by using resource injection like:
@Resource(mappedName="java:/GenericJmsXA", type=JmsConnectionFactory.class)
JmsConnectionFactory connectionFactory2;
Sometimes, when I start up EAP 6.1 however, I get the following error:
10:42:00,525 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report
JBAS014775: New missing/unsatisfied dependencies:
service jboss.naming.context.java.GenericJmsXA (missing) dependents: [service jboss.naming.context.java.module.JBossSecure.JBossSecure.env."com.mak.testing.SecureService".connectionFactory2, service jboss.naming.context.java.module.JBossSecure.JBossSecure.env.GenericJmsXA]
This is completely random, so it has to be some sort of dependancy/startup order issue where the resource adapter hasn't been fully started prior to the WAR starting. If, when the server starts up in this state, I undeploy the WAR, I get the following message:
10:58:48,236 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
JBAS014776: Newly corrected services:
service jboss.naming.context.java.GenericJmsXA (no longer required)
Has anyone figure out how to "remind" JBoss of this dependancy?
Things I've tried:
1) Added " Dependencies: deployment.generic-jms-ra.rar" to my WAR's MANIFEST.MF
2) Added <module name="deployment.generic-jms.ra.rar"/> to my WAR's jboss-deployment-structure.xml
3) Added <resource-ref> elements to my WAR's web.xml