2014-03-27 93 views
0

配置: WSO2ESB 4.8.0 \ 4.8.1 操作系统:Linux \ FreeBSD的WSO2 ESB连接超时调整

CLIENT <-> ESB <-> BACKEND 

这里是我的问题: 如果我创建了简单的直通代理样本该服务的响应延迟为> 60 sec。当esb关闭与客户端的连接而没有任何响应时,我得到一个错误。顺便说一下,根据肥皂跟踪器日志,ESB从后端接收数据,但当时连接"CLIENT <-> ESB"已关闭。

我试图设置这些值:

库/ CONF /的axis2/axis2_client.xml

<transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender" 
      (...) 
      <parameter name="SO_TIMEOUT">120000</parameter> 
      <parameter name="CONNECTION_TIMEOUT">120000</parameter> 
     </transportSender> 
     <transportSender name="https" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"> 
      (...) 
      <parameter name="SO_TIMEOUT">120000</parameter> 
      <parameter name="CONNECTION_TIMEOUT">120000</parameter> 
     </transportSender> 

库/ CONF/nhttp.properties

http.socket.timeout=600000 

库/ CONF /的axis2 /axis2.xml

<transportReceiver name="http" class="org.apache.synapse.transport.nhttp.HttpCoreNIOListener"> 
     (...) 
     <parameter name="SO_TIMEOUT" locked="false">120000</parameter> 
     <parameter name="CONNECTION_TIMEOUT" locked="false">120000</parameter> 
     (...) 
    </transportReceiver> 


    <transportReceiver name="https" class="org.apache.synapse.transport.nhttp.HttpCoreNIOSSLListener"> 
     (...) 
     <parameter name="SO_TIMEOUT" locked="false">120000</parameter> 
     <parameter name="CONNECTION_TIMEOUT" locked="false">120000</parameter> 
     (...) 
    </transportReceiver> 


<transportSender name="http" class="org.apache.synapse.transport.nhttp.HttpCoreNIOSender"> 
     (...) 
     <parameter name="SO_TIMEOUT" locked="false">120000</parameter> 
     <parameter name="CONNECTION_TIMEOUT" locked="false">120000</parameter> 

    </transportSender> 
    <transportSender name="https" class="org.apache.synapse.transport.nhttp.HttpCoreNIOSSLSender"> 
      (...) 
      <parameter name="SO_TIMEOUT" locked="false">120000</parameter> 
      <parameter name="CONNECTION_TIMEOUT" locked="false">120000</parameter> 
</transportSender> 

库/ conf目录/ synapse.properties

synapse.sal.endpoints.sesssion.timeout.default=600000 
synapse.global_timeout_interval=600000 

#In memory statistics cleaning state 
statistics.clean.enable=false 

# Dependency tracking Synapse observer 
# Comment out to disable dependency management 
synapse.observers=org.wso2.carbon.mediation.dependency.mgt.DependencyTracker 

# Uncomment following to support fallback XPATH 2.0 support with DOM and Saxon 
#synapse.xpath.dom.failover.enabled=true 
synapse.temp_data.chunk.size=3072 

# A configuration to add tenant information to the out thread local carbon context 
synapse.carbon.ext.tenant.info=org.wso2.carbon.mediation.initializer.handler.CarbonTenantInfoConfigurator 

#external component registration for secure vault xpath function lookup 
synapse.xpath.func.extensions=org.wso2.carbon.mediation.security.vault.xpath.SecureVaultLookupXPathFunctionProvider 

库/ conf目录/ passthru-http.properties

## Pass-through HTTP transport specific tuning parameters 
worker_pool_size_core=400 
worker_pool_size_max=500 
worker_thread_keepalive_sec=600 
#worker_pool_queue_length=-1 
#io_threads_per_reactor=2 
io_buffer_size=16384 
#http.max.connection.per.host.port=32767 
http.socket.timeout=600000 

# This property is crucial for automated tests 
http.socket.reuseaddr=true 

## Other parameters 
#http.user.agent.preserve=false 
#http.server.preserve=true 
#http.connection.disable.keepalive=false 
rest.dispatcher.service=__MultitenantDispatcherService 
# URI configurations that determine if it requires custom rest dispatcher 
rest_uri_api_regex=\\w+://.+:\\d+/t/.*|\\w+://.+\\w+/t/.*|^(/t/).* 
rest_uri_proxy_regex=\\w+://.+:\\d+/services/t/.*|\\w+://.+\\w+/services/t/.*|^(/services/t/).* 

没有运气。 测试后端网址:因为在默认情况下ESB-4.8.X使用中继传输http://rzrbld.ru/timeout/index.php(70秒超时硬编码)

+0

请分享您的突触配置以及更新 – Vanji

+0

。添加仓库/ conf/synapse.properties – user3459557

回答

3

由于正在使用的nhttp作为传输,添加[1]和[2]在nhttp.properties

[1]和[2]将帮助你在服务器和客户端单独定义超时为监听器 [2] HTTP

[1] http.socket.timeout.receiver =插座超时。 socket.timeout.sender =发件人的套接字超时

示例 [1] http.socket.timeout.receiver = 120000 [2] http.socket.timeout.sender = 120000

+0

谢谢!这非常有帮助。有了这个属性就像它应该。 – user3459557

+0

很高兴听到:) – Vanji

0

在nhttp.properties增加http.socket.timeout也无济于事。请将http.socket.timeout = 600000添加到ESB_HOME/repository/conf/passthru-http.properties文件并重新启动服务器。

谢谢! Charitha

+0

感谢您的回复!但我使用的是axis2_nhttp.xml配置的ESB。传输是org.apache.synapse.transport.nhttp.HttpCoreNIO %%。我正在更新我的帖子并添加了repository/conf/passthru-http.properties。仍然有连接关闭。 – user3459557

0

Pass Through代理使用具有默认配置的匿名端点,您应该尝试添加并使用可配置超时的已命名端点。

另一种解决方案是使用Header“To”并发送介体。在这种情况下,与http.socket.timout配置的超时应当考虑:

<header name="To" value="http://host:port/xxx"/> 
<send/>