2013-05-27 4 views
1

Мне нелегко заставить это работать. Вот моя установкаОтправка сообщения HornetQ на одном сервере JBoss AS 7 из SFSB в другом JBoss AS 7

Сервер1 - JBoss AS 7.1 - Bean1, Bean2 (сессионные бобы)

Сервер2 - JBoss AS 7.1 - HornetQ, MDB1

Идея заключается в том, чтобы отправить сообщение HornetQ на Сервера2 от Bean1. Я просто не могу поверить, что это сложно. Я пробовал все под солнцем, но он просто не работает. Основная проблема, которую я вижу, это то, что поиск JNDI, который я делаю в Bean1, указывает на Server1 вместо Server2. И, следовательно, я получаю исключение, не найденное в очереди, когда я ищу очередь. Я также попытался запустить AS с опцией -b, указывающей на Server2. Как сделать JNDI-поиск Server2/HornetQ с Server1/Bean1?

Я, однако, могу отправить сообщение в ту же очередь из автономного консольного приложения (которое вообще не имеет никакого отношения к JBoss AS 7). Поиск JNDI отлично работает, когда я делаю это из консольного приложения.

ТИА

ответ

1

Вариант 1:

Вы для поиска с удаленного JNDI.

Я не уверен ATM, как указать jndiProps.setProperty (Context.PROVIDER_URL, "127.0.0.1:4447"); в одном из свойств JNDI.

Вариант 2:

можно создать локальную Pooled фабрику соединений, связанный с удаленным сервером:

Сначала укажите разъем

<connectors> 
    <netty-connector name="remote-jms" socket-binding="messaging-remote"/> 
    ... 
</connectors> 

А также указать сокет связывания:

<socket-binding-group ....> 
.... 
    <outbound-socket-binding name="remote-jms"> 
     <remote-destination host="other-hos" port="5445"/> 
    </outbound-socket-binding> 
</socket-binding-group> 

Затем укажите фабрику объединенного подключения, которая будет подключаться удаленно.

<pooled-connection-factory name="ConnectionFactory1"> 
    <user>jmsuser</user> 
    <password>jmspassword</password> 
    <connectors> 
      <connector-ref connector-name="remote-jms" /> 
    </connectors> 
    <entries> 
      <entry name="java:/ConnectionFactory1" /> 
    </entries> 
</pooled-connection-factory> 

Вариант 3:

Создать фабрику соединений без использования JNDI. Обратите внимание, что каждый раз, когда вы подключаетесь, вы будете выполнять сетевой вызов. лучше всего было бы объединить соединение:

http://docs.jboss.org/hornetq/2.3.0.Final/docs/user-manual/html/using-jms.html#d0e1361

Смежные вопросы