2010-08-31 6 views
3

J'ai un serveur sur lequel s'exécute un Jboss 4.2.2 et un Jboss 5.1.0. Le problème est qu'un tiers n'est pas capable de mettre à niveau son application vers Jboss 5.1.0 dans un proche avenir, pour nous, c'est une question simple. Malheureusement, nous devons envoyer et recevoir des messages JMS de l'application tierce exécutée sur Jboss 4.2.2.Comment connecter les files d'attente JMS à partir de JBOSS 4 et 5?

Quelle est la manière la plus simple d'activer le transfert de messages JMS entre JbossMQ et JbossMessaging?

+0

Pouvez-vous apporter des modifications à l'application en cours d'exécution sur JBoss 4.x, ou le transfert ne doit se faire sans connaissance des applications impliquées? – skaffman

+0

Cela dépend, c'est un entrepreneur différent, donc c'est principalement une question de temps/argent. À quoi penses-tu? – Mauli

Répondre

4

Je pense avoir trouvé la solution à mon problème. La documentation JBOSS a un chapitre pour migrer des messages entre JBOSS Messaging et 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

J'ai 2 sujets myTopicSend et myTopicReceive sur mon JBOSS 4.2 et j'ai 2 sujets myTopicSend5 et myTopicReceive5 sur JBOSS 5.1. Je voulais passer tous les messages de myTopicSend à myTopicReceive5 et de myTopicSend5 à MyTopicReceive.

D'une certaine façon la configuration ne fonctionne pas du tout d'abord, mais après un certain temps d'expérimenter j'ai maintenant la configuration suivante:

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

Une chose importante que je pris conscience était, de modifier la MaxBatchSize et MaxBatchTime paramètres, car je veux livrer les messages immédiatement à la file d'attente cible.

Une description de ces paramètres se trouvent à http://www.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/5.0.0/html/JBoss_Messaging_1.4.6/index.html

Questions connexes