2013-03-11 61 views
2

是否可以從中將消息發送到多個端點在代理服務中發送調解器?WSO2 ESB發送到多個端點

link從WSO2 ESB發送語法本章中如果消息被髮送到一個或多個端點下中保文件說,則使用下列內容:

<send> 
    (endpointref | endpoint)+ 
</send> 

其中endpointref令牌指的是以下幾點:

<endpoint key="name"/> 

我一直在努力,包括在發送兩個端點,但第二個獲得REM保存代理服務時(在Developer Studio中或直接在ESB Stratos界面中)自動保存。我沒有進入Synapse page用於發送中保,看看他們說什麼特別的東西和他們的格式表示:

(endpointref | endpoint)? 

現在假設這些字符表示正則表達式,?代表0或1次,+代表1次或更多次。 WSO2是否在Synapse Send Mediator之上實現了這個額外的「一個或多個端點」功能,還是僅僅是文檔頁面上的一個錯誤。如果他們這樣做,確切的語法是什麼使其工作?

謝謝!

回答

2

實際上,您可以使用Recipienlist endpoint將單條消息發送到多個端點。 將收件人列表存儲區域定義爲localentry並將其作爲端點密鑰提供後。

+0

謝謝Ratha。這將在WSO2 ESB 4.5+中起作用,但不幸的是,我們在Stratos部署中使用ESB 4.0.3,現在升級不是一種選擇。任何想法爲什麼文檔甚至在ESB 4.0.3文檔中提到「一個或多個端點」? (鏈接發佈時有問題) – Voicu 2013-03-14 17:16:54

+0

一個或多個表示如果有負載平衡/故障轉移端點,則配置將具有多個端點。但是,正如您嘗試的那樣,您無法在單個發送媒體中定義多個葉端點(即:地址端點)。唯一的辦法是收件人列表端點,但僅在更高版本中可用。您的實際用例將同一郵件發送到多個端點是什麼? – Ratha 2013-03-14 18:21:59

+0

無論如何,一個或多個端點術語看起來是錯誤的..需要糾正.. – Ratha 2013-03-14 18:26:42

2

你可以做這樣的事情:

<send> 
    <endpoint key="jmsMBendpoint1"/> 
    </send> 
            <send> 
             <endpoint key="jmsMBendpoint2"/> 
            </send> 

。我已經使用這個方法,併爲我工作。

+0

謝謝!這確實有效。 – Voicu 2013-04-25 02:00:59

0

您可以使用克隆介體發送到多個端點,並指定相應的端點,如下面的配置。

<sequence xmlns="http://ws.apache.org/ns/synapse" name="send_to_all"> 
    <clone sequential="false"> 
     <target endpoint="endpoint1"/> 
     <target endpoint="endpoint2"/> 
     <target endpoint="endpoint3"/>  
    </clone> 
    <drop/> 
</sequence>