Hi ,
I am running into a strange problem of sockets getting closed after exact
200seconds. My application is OSGI bases running with  servicemix ,
camel-cxf version 2.8-fuse-06-11. Routes are built using DSL in Java
Classes.
A - Client
B - Server

1) Client is submiting the request(It re-uses at its end and sending us
COnnection:Keep-Alive) and it keeps on sending the request by re-using the
connections.
2) When there is no traffic for 200 seconds, the socket is closed by the
Server but Client is still assuming that socket is open as it has requested
to Keep-Alive connections. When Client send a new request  after 200 seconds
assuming the socket is still intact, it gets broken pipe exception and I can
see FIN/ACK in the tcpdumps at Server Side.
3) Server has routes configured to expose webservices and here is my spring
configuration file:-

<beans xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
        xmlns:camel="http://camel.apache.org/schema/spring";
        xmlns:cxf="http://cxf.apache.org/core";
        xmlns:ccxf="http://camel.apache.org/schema/cxf"; 
        xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration";
        xmlns:osgi="http://www.springframework.org/schema/osgi";
        xmlns:http-conf="http://cxf.apache.org/transports/http/configuration";
        
        xsi:schemaLocation=" http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                http://camel.apache.org/schema/osgi
                http://camel.apache.org/schema/osgi/camel-osgi.xsd
                http://camel.apache.org/schema/spring
                http://camel.apache.org/schema/spring/camel-spring.xsd
                http://camel.apache.org/schema/cxf
                http://camel.apache.org/schema/cxf/camel-cxf.xsd
            http://www.springframework.org/schema/osgi
        http://www.springframework.org/schema/osgi/spring-osgi.xsd
                http://cxf.apache.org/transports/http-jetty/configuration
                http://cxf.apache.org/schemas/configuration/http-jetty.xsd
                http://cxf.apache.org/transports/http/configuration
        http://cxf.apache.org/schemas/configuration/http-conf.xsd
                http://cxf.apache.org/core
                http://cxf.apache.org/schemas/core.xsd
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd";>
    
        <import resource="classpath:META-INF/cxf/cxf.xml" />
        <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
        <import resource="classpath:META-INF/cxf/cxf-extension-http.xml" />
        <import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml" 
/>
        <import resource="classpath:META-INF/cxf/cxf-extension-ws-security.xml" 
/>
        <http-conf:conduit name="*.http-conduit">
    <http-conf:client Connection="Keep-Alive"
                      MaxRetransmits="1"
                      AllowChunking="false" />
   </http-conf:conduit>
                
                
        <httpj:engine-factory bus="cxf">
      <httpj:engine port="0">
        <httpj:threadingParameters minThreads="50" maxThreads="3000" />
      </httpj:engine>
    </httpj:engine-factory>
   ..............<.....application specific bean definitions ...>

   <camelContext id="camelContext-service-sms" trace="true"
xmlns="http://camel.apache.org/schema/spring";>  
        <threadPoolProfile id="defaultThreadPoolProfile" defaultProfile="true"
                        poolSize="100" maxPoolSize="100" maxQueueSize="1000"
                        rejectedPolicy="CallerRuns"/>
        </camelContext>
</beans>


With above configuration, http-conduit settings does seems to be making any
difference. I also tried setting  ReceiveTimeout="0" ConnectionTimeout="0" 
but that did not helped either.
Also tried to set http-conf:server parameters using below setting to honor
Keep-Alive HTTP connections.

<http-conf:destination name="*.http-destination">
                <http-conf:server HonorKeepAlive="true"/>
</http-conf:destination>

I looked at several posts on Camel, CXF but not sure what is wrong here.

Can anyone help me understand why the sockets are getting closed and how can
I configure my service endpoint/Jetty server to Keep-Alive connection
without getting timeout.



--
View this message in context: 
http://camel.465427.n5.nabble.com/Sockets-getting-closed-after-200-seconds-tp5754314.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to