JBoss JMS удаленная очередь?

Я хочу отправить сообщения удаленной очереди? какие шаги я должен сделать, я не могу найти документацию об этом? кто-либо может помочь???

5
задан Taha Yusuf 14 December 2009 в 12:59
поделиться

2 ответа

Добавьте еще один «JMSProvider» в свой $ {JBOSS_CONF} /deploy/messaging/jms-ds.xml. В этом примере я использую имя провайдера «RemoteJMSProvider»:

<!-- 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>

Затем добавьте «Фабрику удаленных подключений»:

<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>

Теперь, когда вы создаете ссылку фабрики соединений на «RemoteJMSFactory», любая очередь, на которую вы ссылаетесь, будет просматриваться - на удаленном сервере:

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);

См. также: http://community.jboss.org/wiki/HowDoIConfigureAnMDBToTalkToARemoteQueue

6
ответ дан 14 December 2019 в 13:38
поделиться

Посмотрите документацию / примеры установки jboss. Единственное изменение, необходимое для подключения к удаленной очереди, - это настройка исходного контекста для ссылки на порт JNDI удаленного сервера приложений.

0
ответ дан 14 December 2019 в 13:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: