How to use hornetq-ra.rar on Wildfly
sridharthiyagarajan Apr 21, 2015 6:23 AMHello,
I am migrating my application from JBoss 6 to Wildfly 8 with standalone-full-ha.xml configuration.
MDB in my application uses jms-ra.rar as resource adapter and the rar archive is present in server/deploy directory with respect to deployment in JBoss 6 Application Server. In Wildfly, I have defined hornetq-ra.rar as the resource adapter in my MDB (@ResourceAdapter(value="hornetq-ra.rar").
Is hornetq-ra.rar a default resource adapter in Wildfly ? Is adding @ResourceAdapter(value="hornetq-ra.rar" in my MDB enough to consume this default resource adapter ?.
I cannot find hornetq-ra.rar files structure in Wildfly Application Server but just observed one module org.hornetq.ra. Is this module responsible for hornetq-ra.rar ? Do we need to add this module as a dependency to consume default resource adapter ?
MDB code snippet:
@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@MessageDriven(name = "TestMessageDrivenBean", activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "java:/jms/queue/TestQueue")})
@ResourceAdapter(value="hornetq-ra.rar")
public class TestMDBean implements MessageListener {
...
}
1. hornetq-ra.rar is a default resource adapter and hence, below section is not modified.
<subsystem xmlns="urn:jboss:domain:resource-adapters:2.0"/>
2. Defined TestQueue in the messaging section as defined below.
<subsystem xmlns="urn:jboss:domain:messaging:2.0">
<hornetq-server>
....
<jms-connection-factories>
<connection-factory name="InVmConnectionFactory">
<connectors>
<connector-ref connector-name="in-vm"/>
</connectors>
<entries>
<entry name="java:/ConnectionFactory"/>
</entries>
</connection-factory>
<connection-factory name="RemoteConnectionFactory">
<connectors>
<connector-ref connector-name="http-connector"/>
</connectors>
<entries>
<entry name="java:jboss/exported/jms/RemoteConnectionFactory"/>
</entries>
<ha>true</ha>
<block-on-acknowledge>true</block-on-acknowledge>
<reconnect-attempts>-1</reconnect-attempts>
</connection-factory>
<pooled-connection-factory name="hornetq-ra">
<transaction mode="xa"/>
<connectors>
<connector-ref connector-name="in-vm"/>
</connectors>
<entries>
<entry name="java:/JmsXA"/>
<entry name="java:jboss/DefaultJMSConnectionFactory"/>
</entries>
</pooled-connection-factory>
</jms-connection-factories>
<jms-destinations>
<jms-queue name="ExpiryQueue">
<entry name="java:/jms/queue/ExpiryQueue"/>
</jms-queue>
<jms-queue name="DLQ">
<entry name="java:/jms/queue/DLQ"/>
</jms-queue>
<jms-queue name="TestQueue">
<entry name="java:/jms/queue/TestQueue"/>
</jms-queue>
</jms-destinations>
</hornetq-server>
</subsystem>
3. Adding the available default binding under <subsystem xmlns="urn:jboss:domain:ee:2.0">.
<default-bindings context-service="java:jboss/ee/concurrency/context/default" datasource="java:/TestDB" jms-connection-factory="java:jboss/DefaultJMSConnectionFactory" managed-executor-service="java:jboss/ee/concurrency/executor/default" managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default" managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
What is the connection factory name for consuming the queue created using hornetq-ra.rar adapter ? Is it java:jboss/DefaultJMSConnectionFactory as this is defined in default bindings or do I need to consider other JNDI names java:/JmsXA , java:/ConnectionFactory for initializing the JMS. Please help. Many thanks.