任務(wù):熟悉RouteToLabel節(jié)點(diǎn),Label節(jié)點(diǎn)及Catch的使用
1.RouteToLabel節(jié)點(diǎn)在Routing下,與Filter節(jié)點(diǎn)在一起,label節(jié)點(diǎn)也在里面。如下圖拖拽出一個(gè)RouteToLabel節(jié)點(diǎn),兩個(gè)Label節(jié)點(diǎn)。

2.再增加一個(gè)MQ Output節(jié)點(diǎn)Mq output2,關(guān)聯(lián)到OutQ3。這個(gè)節(jié)點(diǎn)作用是當(dāng)Compute導(dǎo)向出現(xiàn)異常(如address是深圳)時(shí)將信息發(fā)到OutQ3上。注意MQ
Mq output2到Mq Input的連線的起點(diǎn)和終點(diǎn)。

3.設(shè)置Compute節(jié)點(diǎn)的Compute Mode類型為ALL,這是為了在其中書寫新的ESQL做的準(zhǔn)備。

4.編輯Compute節(jié)點(diǎn)的新的ESQL。

SET OutputLocalEnvironment.Destination.RouterList.DestinationData[1].labelName = InputRoot.XML.mail.address;
這條語(yǔ)句會(huì)查看輸入XML的mail節(jié)點(diǎn)的address節(jié)點(diǎn)的內(nèi)容,如果能找到對(duì)應(yīng)(mail節(jié)點(diǎn)的address節(jié)點(diǎn)的內(nèi)容==Label節(jié)點(diǎn)的Label Name)的Label節(jié)點(diǎn),則將消息導(dǎo)向到這個(gè)Label的后端;如果找不到的話,則將信息導(dǎo)向到Compute節(jié)點(diǎn)來(lái)源節(jié)點(diǎn)的catch端。
5.設(shè)置Label節(jié)點(diǎn)一(大連)的Label Name。

6.設(shè)置Label節(jié)點(diǎn)二(上海)的Label Name。

7.給各條連線加上斷點(diǎn),用以觀察消息的流向。

8.當(dāng)消息為“<mail><id>0001</id><address>dalian</address></mail>”時(shí),如愿,消息被導(dǎo)向到了MQ Output。

-The End-