Desidero inviare messaggi alla coda remota? che cosa devo fare non posso trovare alcuna documentazione al riguardo? chiunque può aiutare ?? ?JBoss JMS Remote Queue?
5
A
risposta
6
Aggiungi un altro "JMSProvider" nel tuo $ {JBOSS_CONF} /deploy/messaging/jms-ds.xml. Io uso il nome del provider "RemoteJMSProvider" in questo esempio:
<!-- Remote JMS Server-->
<mbean code="org.jboss.jms.jndi.JMSProviderLoader"
name="jboss.mq:service=JMSProviderLoader,name=RemoteJMSProvider,server=your_remote_host">
<attribute name="ProviderName">RemoteJMSProvider</attribute>
<attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
<!-- The connection factory -->
<attribute name="FactoryRef">XAConnectionFactory</attribute>
<!-- The queue connection factory -->
<attribute name="QueueFactoryRef">XAConnectionFactory</attribute>
<!-- The topic factory -->
<attribute name="TopicFactoryRef">XAConnectionFactory</attribute>
<!-- Connect to JNDI on the host "the-remote-host-name" port 1099-->
<attribute name="Properties">
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jnp.interfaces
java.naming.provider.url=your_remote_host:1099
</attribute>
Avanti, aggiungere una "fabbrica di connessione remota":
<tx-connection-factory>
<jndi-name>RemoteJMSConnectionFactory</jndi-name>
<xa-transaction/>
<rar-name>jms-ra.rar</rar-name>
<connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition>
<config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Queue</config-property>
<config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/RemoteJMSProvider</config-property>
<max-pool-size>20</max-pool-size>
<security-domain-and-application>JmsXARealm</security-domain-and-application>
<depends>jboss.messaging:service=ServerPeer</depends>
Ora, ogni volta che si crea un riferimento di fabbrica di connessione a "RemoteJMSFactory", qualsiasi coda di riferimento verrà cercata sul server remoto:
ConnectionFactory factory =(ConnectionFactory)JNDIContext.lookup("java:/RemoteJMSConnectionFactory");
queue = (Destination) JNDIContext.lookup("queue/myqueue");
connection = factory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer sender = session.createProducer(queue);
sender.send(jmsMessage);
Consulta anche: http://community.jboss.org/wiki/HowDoIConfigureAnMDBToTalkToARemoteQueue
0
Cerca nei documenti/esempi dell'installazione di jboss. L'unica modifica necessaria per connettersi a una coda remota consiste nell'impostare il contesto iniziale in riferimento alla porta JNDI dell'appserver remoto.
thank u molto l'ho fatto –
Sarà questo lavoro per la discussione a distanza. Sto usando EJB3 MDB su JBOSS per ascoltare un argomento remoto su IBM MQ. –