2013-10-29 93 views
4

我是否有任何可能通過的MessageId找到關於WSO2 ESB消息,像骨灰盒:UUID:e11893c5-b033-4e99-9473-a43d66b65fbb?例如,如果某些流失敗並且服務器記錄了這樣的ID。WSO2 ESB消息ID

回答

4

Maryan,

ESB本身並沒有任何地方登錄的消息,直到你告訴它。

一)第一種方法是使用日誌中介寫的傳入和傳出消息到日誌:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="YourProxyService" transports="https http" startOnLoad="true"> 
<target> 
    <inSequence> 
     <log level="full"> 
      <property name="MESSAGE_ID" expression="get-property('MessageID')"/> 
     </log> 
     ... 
    </inSequence> 
    <outSequence> 
     <log level="full"> 
      <property name="MESSAGE_ID" expression="get-property('MessageID')"/> 
     </log> 
     ... 
    </outSequence> 
</target> 
</proxy> 

然後你就可以找到日誌文件爲您的傳入和傳出消息日誌將包含類似以下內容:

INFO {org.apache.synapse.mediators.builtin.LogMediator} - To: http://localhost:9763/services/YourProxyService, From: 127.0.0.1, WSAction: urn:mediate, SOAPAction: urn:mediate, Direction: request, MESSAGE_ID = urn:uuid:e11893c5-b033-4e99-9473-a43d66b65fbb , Envelope: <ENVELOPE_GOES_HERE> 

b)另一種方法是在數據庫和存儲信息的id和信封噸至創建表它。

希望這會有所幫助。 弗拉基米爾。

UPD:您也可以使用內置的SOAP跟蹤器,但要謹慎使用它 - 它會影響ESB的性能。所以我建議僅將它用於短期調試活動。

+0

是的,這是我的日誌,我發現消息ID,我的問題是關於一些默認存儲位置,我可能會發現這樣的消息。所以你的第二個建議非常適合作爲解決方案。謝謝。 – Marian

0

是的,你可以使用屬性調解員得到的消息ID,

<property name="MessageID" expression="get-property('MessageID')"/> 
0

正如其他人指出的那樣,你可以使用WSO2 ESB日誌報表日誌的消息和搜索後來發現。

但是,當消息流失敗在某些時候,作爲消息ID將跨越不同的消息流不同它變得複雜。 一個簡單的方法是讀取傳入的messagID並使用它直到最終響應消息。

有詳細的解釋一下here

相關問題