Context context = new InitialContext();
// 1) lookup connection factory (local JNDI lookup, no credentials required)
javax.jms.ConnectionFactory cf = (javax.jms.ConnectionFactory)context.lookup("java:/GenericJmsXA");
// 2) create a connection to the remote provider
javax.jms.Connection c = cf.createConnection();
// 3) create session sessionboolean transacted = true;javax.jms.Session session = connection.createSession(transacted, Session.AUTO_ACKNOWLEDGE); // 4) "create" the queue/topic (using the topic name - not JNDI)javax.jms.Topic topic = session.createTopic("ServerNotificationTopic"); // 5) create consumerjavax.jms.MessageConsumer consumer = session.createConsumer(topic); // messageSelector is optional // 6) set listenerconsumer.setMessageListener(new javax.jms.MessageListener() { public void onMessage(javax.jms.Message message) { System.out.println("received message: "+message); }}); // 7) listen for messages (start the connection)c.start();
javax.jms.Topic topic = session.createTopic("ServerNotificationTopic");
<subsystem xmlns="urn:JBoss:domain:resource-adapters:1.0"> <resource-adapters> <resource-adapter> <archive> generic-jms-ra-<VERSION>.rar </archive> <transaction-support>XATransaction</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=org.jnp.interfaces.NamingContextFactory;java.naming.provider.url=JBM_HOST:1099;java.naming.factory.url.pkgs=org.JBoss.naming:org.jnp.interfaces </config-property> <config-property name="ConnectionFactory"> XAConnectionFactory </config-property> <xa-pool> <min-pool-size>0</min-pool-size> <max-pool-size>10</max-pool-size> <prefill>false</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> <pad-xid>false</pad-xid> <wrap-xa-resource>true</wrap-xa-resource> </xa-pool> <security> <application/> </security> </connection-definition> </connection-definitions> <admin-objects/> </resource-adapter> </resource-adapters></subsystem>
<admin-objects> <admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name=" queue/JMSBridgeTargetQ " use-java-context="true" pool-name="target_queue"> <config-property name="PhysicalName"> JMSBridgeTargetQ </config-property> </admin-object></admin-objects>