سؤال

لدي خادم يقوم عليه JBoss 4.2.2 و JBoss 5.1.0. المشكلة هي أن الطرف الثالث غير قادر على ترقية تطبيقه إلى 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.beta/html/jboss_messaging_user_guide/inst-mqmessagemigration.html

لديّ موضوعان mytopicsend و mytopicreceive على jboss 4.2 ولدي موضوعان mytopicsend5 و mytopicreceive5 على jboss 5.1.

أردت سد جميع الرسائل من mytopicsend إلى mytopicreceive5 ومن mytopicsend5 إلى mytopicreceive.

بطريقة ما لم ينجح التكوين على الإطلاق ، ولكن بعد بعض الوقت من التجربة ، أصبح لدي الآن التكوين التالي:

<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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top