2013-10-23 86 views
2

編輯:Mule 3.3.1Mule註銷出站端點信息

我想記錄我的流花費在外部服務上等待的時間量以及有關該調用的一些額外信息。現在,我做了與我在全球宣佈的自定義組件:

<spring:beans> 
    <spring:bean id="idAuth" class="com.ca.eai.esb.component.OutboundLogger"> 
     <spring:property name="calloutName" value="Authorization"/> 
    </spring:bean> 
</spring:beans> 

,然後才和我的標註後調用:

<component> 
    <spring-object bean="idAuth"/> 
</component> 

<https:outbound-endpoint..../> 

<component> 
    <spring-object bean="idAuth"/> 
</component> 

它保持的時間跟蹤記錄加上其他一些事實。

我的問題是如果有更好的方法?我正在考慮在通過實現AbstractEnvelopeInterceptor並在流的開始處聲明它之後,如何在有關流的信息之後登錄&。是否有類似的情況,您可以實現並綁定到端點,並根據請求調用方法,然後在響應中調用另一個方法?

回答

0

我假設它是一個SOAP Web服務,你正試圖擊中。

您可以使用Soap組件端點中的in-interceptor和out-interceptor組合來記錄時序。 1)創建一個攔截器並添加一個屬性變量(說:inTime)它包含時間
2)創建一個out-interceptor你將採取CurrentTime(減)inTime給你的時間拍攝。
3)在控制檯中記錄或顯示合成時間或任何方法供您使用計時。

這將是我會建議的方法。

如果它不是一個Web服務(而你需要它僅適用於HTTP端點)

1)添加全局變壓器請求,如消息屬性,在HTTP端點存儲調用
的時間2)用於響應另一個全球變壓器,作爲消息屬性,在HTTP端點存儲)響應的時間
3使用另一部件(如用Groovy表達記錄器),以找到兩個時間之間的差,並顯示它

1

如果您使用MMC進行部署。您可以使用Custom Business Events消息處理器。爲此,您必須啓用流量追蹤。因此,在MMC根據Buiness Events可以看到有關您的流量和每個消息處理器Processing Time和日期和所有其他相關信息的詳細信息。知道它是在3.2版本。不確定舊版本。你可以檢查一下。 啓用流程中的事件:http://www.mulesoft.org/documentation/display/current/Business+Events 在MMC中查詢:http://www.mulesoft.org/documentation/display/current/Tracking+and+Querying+Business+Events