Как подключить очереди JMS от JBoss 4 и 5?
Вопрос
У меня есть сервер, на котором jboss 4.2.2 и jboss 5.1.0 работает. Проблема в том, что 3-я сторона не в состоянии улучшить свое заявление на JBoss 5.1.0 в ближайшее время, для нас это простое дело. К сожалению, нам нужно отправить и получать несколько сообщений JMS из третьего приложения, работающего на JBOSS 4.2.2.
Какой самый простой способ включить передачу сообщений JMS между JBOSSMQ и JBossmessaging?
Решение
Я думаю, что нашел решение для моей проблемы. Документация JBoss имеет главу для миграции сообщений между сообщениями JBoss и JBoss MQ: http://www.redhat.com/docs/en-us/jboss_enterprise_application_platform/5.0.0.beta/html/jboss_messaging_user_guide/inst-mqmessagemigration.html.html.
У меня есть 2 темы Myтопикдовые и митопикроевые на моем JBOSS 4.2, и у меня 2 темы mytopicsend5 и mytopicreceive5 на JBoss 5.1.
Я хотел преодолеть все сообщения от митопов на Mytopicreceive5 и от Mytopicsend5 к митопикрове.
Каким-то образом конфигурация не работала вообще, но через некоторое время экспериментов у меня теперь следующая конфиг:
<mbean code="org.jboss.jms.jndi.JMSProviderLoader"
name="jboss.messaging:service=JMSProviderLoader,name=RemoteJBossMQProvider">
<attribute name="ProviderName">RemoteXAConnectionFactory</attribute>
<attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
<attribute name="FactoryRef">XAConnectionFactory</attribute>
<attribute name="QueueFactoryRef">XAConnectionFactory</attribute>
<attribute name="TopicFactoryRef">XAConnectionFactory</attribute>
<attribute name="Properties">
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=127.0.0.1:1099
</attribute>
</mbean>
<mbean code="org.jboss.jms.server.bridge.BridgeService"
name="jboss.messaging:service=Bridge,name=LegayBridgeSend" xmbean-dd="xmdesc/Bridge-xmbean.xml">
<depends optional-attribute-name="SourceProviderLoader">jboss.messaging:service=JMSProviderLoader,name=RemoteJBossMQProvider</depends>
<depends optional-attribute-name="TargetProviderLoader">jboss.messaging:service=JMSProviderLoader,name=JMSProvider</depends>
<attribute name="SourceDestinationLookup">/topic/myTopicSend</attribute>
<attribute name="TargetDestinationLookup">/topic/myTopicReceive5</attribute>
<attribute name="QualityOfServiceMode">0</attribute>
<attribute name="MaxBatchSize">1</attribute>
<attribute name="MaxBatchTime">-1</attribute>
<attribute name="FailureRetryInterval">5000</attribute>
<attribute name="MaxRetries">-1</attribute>
<attribute name="AddMessageIDInHeader">false</attribute>
</mbean>
<mbean code="org.jboss.jms.server.bridge.BridgeService"
name="jboss.messaging:service=Bridge,name=LegayBridgeReceive" xmbean-dd="xmdesc/Bridge-xmbean.xml">
<depends optional-attribute-name="SourceProviderLoader">jboss.messaging:service=JMSProviderLoader,name=JMSProvider</depends>
<depends optional-attribute-name="TargetProviderLoader">jboss.messaging:service=JMSProviderLoader,name=RemoteJBossMQProvider</depends>
<attribute name="SourceDestinationLookup">/topic/myTopicSend5</attribute>
<attribute name="TargetDestinationLookup">/topic/myTopicReceive</attribute>
<attribute name="QualityOfServiceMode">0</attribute>
<attribute name="MaxBatchSize">1</attribute>
<attribute name="MaxBatchTime">-1</attribute>
<attribute name="FailureRetryInterval">5000</attribute>
<attribute name="MaxRetries">-1</attribute>
<attribute name="AddMessageIDInHeader">false</attribute>
</mbean>
Важным, что я понял, было, чтобы настроить Maxbatchsize а также MaxbatchTime Параметры, потому что я хочу немедленно доставить сообщения на целевую очередь.
Описание этих параметров можно найти в http://www.redhat.com/docs/en-us/jboss_enterprise_application_platform/5.0.0/html/jboss_messaging_1.4.6/index.html.