2013-01-25 25 views
0

我們在ESB 4.5.1中遇到了WSO2標註調解器的問題。WSO2標註調解器 - 重複的故障觸發器'超時等待連接'

假設一個簡單的代理,如:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="EchoWrapper" transports="https,http" statistics="disable" trace="disable" startOnLoad="true"> 
    <target> 
     <inSequence> 
     <callout serviceURL="http://[MY_HOSTNAME]:8280/services/echo?wsdl" action="urn:echoInt"> 
      <source xmlns:ns="http://org.apache.synapse/xsd" xpath="$body/*[1]"/> 
      <target key="calloutBody"/> 
     </callout> 
     <property name="RESPONSE" value="true" scope="default" type="STRING"/> 
     <header name="To" value="http://www.w3.org/2005/08/addressing/anonymous"/> 
     <log level="full"/> 
     <send/> 
     </inSequence> 
    </target> 
    <publishWSDL uri="http://[MY_HOSTNAME]/services/echo?wsdl"/> 
    <description></description> 
</proxy> 

..如果我做一個故障發生,即通過其中一個int預計一個字符串,我會得到一個立即錯誤響應,一個緩慢的錯誤響應,並那麼端點將變爲完全無效,即使是有效的消息。在日誌中,我們看到:

org.apache.commons.httpclient.ConnectionPoolTimeoutException:超時在org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConnection(MultiThreadedHttpConnectionManager.java:497) 在org.apache等待連接 .commons.httpclient.MultiThreadedHttpConnectionManager.getConnectionWithTimeout(MultiThreadedHttpConnectionManager.java:416) 在org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153) 在org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient的.java:397) ...

任何想法?

回答

1

看來這個問題已經在其他地方報道過(https://wso2.org/jira/browse/ESBJAVA-922)。會發生什麼情況是,拋出異常時不會清理連接,這實際上意味着此版本的標註中介在收到故障或超時時實際上沒有用處。

有關如何解決此問題的細節(我認爲這很重要)可以在上面的鏈接中找到,這只是添加一行來清理catch塊中的連接的問題。

相關問題