Trying to integrate jboss eap 6.4 with artemis server(2.17), placed libraries in modules folder & used resource-adapter in standalone.xml, could able to post message to remote artemis server(clustered) but cannot listen with MDB's.
Configuration in standalone.xml:
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">
<resource-adapters>
<resource-adapter id="org.apache.activemq.artemis.ra">
<module slot="main" id="org.apache.activemq.artemis.ra"/>
<transaction-support>XATransaction</transaction-support>
<config-property name="ConfirmationWindowSize">
50
</config-property>
<config-property name="DiscoveryRefreshTimeout">
3333
</config-property>
<config-property name="userName">
amq-user
</config-property>
<config-property name="password">
amq-pwd
</config-property>
<config-property name="ClientFailureCheckPeriod">
100
</config-property>
<config-property name="MaxRetryInterval">
3000
</config-property>
<config-property name="ConnectionParameters">
host=remote-host1;port=61616,host=remote-host2;port=61616,host=remote-host3;port=61616
</config-property>
<config-property name="HA">
true
</config-property>
<config-property name="RetryInterval">
4444
</config-property>
<config-property name="connectorClassName">
org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory
</config-property>
<config-property name="ConnectionLoadBalancingPolicyClassName">
org.apache.activemq.artemis.api.core.client.loadbalance.RoundRobinConnectionLoadBalancingPolicy
</config-property>
<config-property name="ReconnectAttempts">
10
</config-property>
<connection-definitions>
<connection-definition class-name="org.apache.activemq.artemis.ra.ActiveMQRAManagedConnectionFactory" jndi-name="java:/JmsConnectionFactory" enabled="true" pool-name="JmsConnectionFactory">
<xa-pool>
<min-pool-size>25</min-pool-size>
<max-pool-size>30</max-pool-size>
<prefill>true</prefill>
<is-same-rm-override>false</is-same-rm-override>
</xa-pool>
</connection-definition>
</connection-definitions>
<admin-objects>
<admin-object class-name="org.apache.activemq.artemis.jms.client.ActiveMQQueue" jndi-name="java:jboss/jms/queue/TestQueue" use-java-context="true" pool-name="TestQueue">
<config-property name="PhysicalName">
TestQueue
</config-property>
</admin-object>
</admin-objects>
</resource-adapter>
</resource-adapters>
<mdb>
<resource-adapter-ref resource-adapter-name="org.apache.activemq.artemis.ra"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
</mdb>
ListnerCode:
@MessageDriven(mappedName = "java:jboss/jms/queue/TestQueue", activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "TestQueue"),
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge") })
public class TestQueueListener implements MessageListener {}
Local jboss logs, below warn is coming repeatedly.
WARN [org.apache.activemq.artemis.ra] (default-threads - 2) {X:|I:} AMQ153005: Unable to retrieve "TestQueue" from JNDI. Creating a new "javax.jms.Queue" named "TestQueue" to be used by the MDB.
On Artemis server logs,
DEBUG [org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler] Sending exception to client: ActiveMQNonExistentQueueException[errorType=QUEUE_DOES_NOT_EXIST message=AMQ229017: Queue TestQueue does not exist]
I guess jboss is not configured properly and cannot create queue for listener.