Hi,
I'm trying to configure a service on a SOA-P 5 instance to consume messages from a gateway queue hosted on a remote HornetQ (v2.1.1 final). The SOA-P instance is using JBM for its internal JMS queues.
When using the JMS provider it all works ok but I want to use the jms-jca-provider.
I've copied the hornetq-ra.rar into the server/deploy directory and configured the providerloader and service as below but I still receive no messages onto the gateway queue.
The hornetQ server is a standalone instance (not embedded in an AS instance) running on the same box and providing JNDI access on port 3099.
Nothing of interest is appearing in the logs.
Can someone please take a look at the config. I'm sure its a SOA-P configuration issue its just I'm not sure where its misconfigured.
I have configured and deployed a hq-jms-ds.xml with the following:
{code}
<?xml version="1.0" encoding="UTF-8"?>
<connection-factories>
<mbean code="org.jboss.jms.jndi.JMSProviderLoader" name="hornetq:service=JMSProviderLoader,name=JMSProvider">
<attribute name="ProviderName">HornetQJMSProvider</attribute>
<attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
<attribute name="FactoryRef">XAConnectionFactory</attribute>
<attribute name="QueueFactoryRef">XAConnectionFactory</attribute>
<attribute name="TopicFactoryRef">XAConnectionFactory</attribute>
<attribute name="Properties">
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://localhost:3099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
</attribute>
</mbean>
<tx-connection-factory>
<jndi-name>HJmsXA</jndi-name>
<xa-transaction/>
<rar-name>hornetq-ra.rar</rar-name>
<connection-definition>org.hornetq.ra.HornetQRAConnectionFactory</connection-definition>
<config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Queue</config-property>
<config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/HornetQJMSProvider</config-property>
<max-pool-size>20</max-pool-size>
<security-domain-and-application>JmsXARealm</security-domain-and-application>
<config-property name="ConnectionParameters" type="java.lang.String">host=localhost;port=5445</config-property>
</tx-connection-factory>
</connection-factories>
{code}
And the service is as follows:
{code}
<?xml version = "1.0" encoding = "UTF-8"?>
<providers>
<jms-jca-provider name="HornetQ" connection-factory="XAConnectionFactory"
jndi-URL="jnp://localhost:3099"
jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
java.naming.factory.url.pkgs="org.jboss.naming:org.jnp.interfaces"
providerAdapterJNDI="java:/HornetQJMSProvider">
<jms-bus busid="quickstartGwChannel">
<jms-message-filter
dest-type="QUEUE" dest-name="queue/quickstart_jms_transacted_Request_gw" transacted="true"/>
</jms-bus>
</jms-jca-provider>
<jms-provider name="JBossMessaging" connection-factory="ConnectionFactory">
<jms-bus busid="quickstartEsbChannel">
<jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_jms_transacted_Request_esb"/>
</jms-bus>
</jms-provider>
</providers>
<services>
<service
category="JMSSecuredESB"
name="SimpleListener"
description="JMS Secured quickstart sample">
<listeners>
<jms-listener name="JMS-Gateway"
busidref="quickstartGwChannel"
is-gateway="true"/>
<jms-listener name="jmssecured"
busidref="quickstartEsbChannel"/>
</listeners>
<actions mep="OneWay">
<action name="printMessage" class="org.jboss.soa.esb.actions.SystemPrintln">
<property name="message" value="JMS Transacted Quickstart entered. Message body"/>
<property name="printfull" value="false"/>
</action>
</actions>
</service>
</services>
</jbossesb>
{code}
The hornetq jms queues are defined as
{code}
<queue name="quickstart_jms_transacted_Request_gw">
<entry name="/queue/quickstart_jms_transacted_Request_gw"/>
</queue>
{code}