2013-06-27 123 views

回答

1

以下是我用來從JMS隊列中選擇併發布到另一個隊列的WSO2 ESB代理服務配置(在ActiveMQ JMS提供者):

<proxy xmlns="http://ws.apache.org/ns/synapse" name="JMS_to_JMS_proxy_service" transports="jms" statistics="disable" trace="disable" startOnLoad="true"> 
    <target> 
     <inSequence> 
     <log level="full" separator="," /> 
     <property name="OUT_ONLY" value="true" scope="default" type="STRING" /> 
     <send> 
      <endpoint> 
       <address uri="jms:/Destination_Queue_Name?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;java.naming.provider.url=tcp://Your_Host:61616&amp;transport.jms.DestinationType=queue" trace="disable"> 
        <timeout> 
        <duration>30000</duration> 
        <responseAction>fault</responseAction> 
        </timeout> 
        <suspendOnFailure> 
        <initialDuration>0</initialDuration> 
        <progressionFactor>1.0</progressionFactor> 
        <maximumDuration>0</maximumDuration> 
        </suspendOnFailure> 
       </address> 
      </endpoint> 
     </send> 
     </inSequence> 
    </target> 
    <parameter name="transport.jms.ContentType"> 
     <rules>        
     <jmsProperty>contentType</jmsProperty>        
     <default>text/plain; charset=ISO-8859-1</default>      
     </rules> 
    </parameter> 
    <parameter name="transport.jms.ConnectionFactory">myQueueConnectionFactory</parameter> 
    <parameter name="transport.jms.DestinationType">queue</parameter> 
    <parameter name="transport.jms.Destination">Source_Queue_Name</parameter> 
</proxy>         

不要忘記在配置 - >傳輸菜單下啓用JMS傳輸發送器。另外,myQueueConnectionFactory指的是在配置 - >傳輸 - > JMS傳輸偵聽器下設置的參數。

更新:較新版本的WSO2 ESB將不具有用於啓用/禁用傳輸的GUI選項。爲此,您必須修改{ESB_ROOT_DIRECTORY} /repository/conf/axis2/axis2.xml文件並取消註釋與您的環境相對應的JMSListener/JMSSender(ActiveMQ,WSO2 MB等)

+0

這實際上是在兩個不同的activemq代理之間發送流量嗎? –

+0

是的,源隊列位於JMS Transport Listener的'myQueueConnectionFactory'參數下配置的ActiveMQ實例上,而目標隊列位於'address uri'的端點'java.naming.provider.url'中定義的ActiveMQ實例上。 – Voicu

+0

我必須在某處丟失一些配置,因爲當我這樣做時,我得到的是與之前一樣的行爲,消息傳遞給代理服務正在偵聽的代理... 在參數部分中進行連接工廠配置有一個不同的經紀人定義在它? –