You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Christof Tinnes (JIRA)" <ji...@apache.org> on 2017/04/27 14:58:04 UTC

[jira] [Created] (CXF-7348) Retry sending of POST Messages under Load

Christof Tinnes created CXF-7348:
------------------------------------

             Summary: Retry sending of POST Messages under Load
                 Key: CXF-7348
                 URL: https://issues.apache.org/jira/browse/CXF-7348
             Project: CXF
          Issue Type: Bug
          Components: JAX-RS
    Affects Versions: 3.1.4
         Environment: Can be reproduced on many environments

            Reporter: Christof Tinnes


We are using Multiple Instances (e.g. 200) in parallel. One per Thread.
Each Client is using POST REST-Methods to Call a REST-Service of a Spring-Application (using also CXF on server side for JAX-RS) running in Tomcat.

We experience a retry of the entire HTTP-Message (approx. 20ms offset) 
in 0.002 of the messages. We can see this retry on server side and in an TCP-Monitor on client side.
We can not see the retry in the CXF (Debug) Logs. There we can also see one of the requests and one of the responses. 

Our initialialization of each Client looks the following:

 WebClient clientLocal =
        WebClient.create(this.propertyManager.get(ProxyPropertiesEnum.WEBSERVICE_ADDRESS, String.class));
    ClientConfiguration clientconfig = WebClient.getConfig(clientLocal);
    clientconfig.getRequestContext().put(org.apache.cxf.message.Message.MAINTAIN_SESSION, Boolean.TRUE);
    clientLocal.path(this.propertyManager.get(ProxyPropertiesEnum.WEBSERVICE_PATH_MESSAGE_PROCESSING, String.class));
    clientLocal.type(MEDIA_TYPE_OUTGOING).accept(MEDIA_TYPE_INCOMING);
    clientconfig.setSynchronousTimeout(this.propertyManager.get(ProxyPropertiesEnum.TIMEOUT_WEBSERVICE, Long.class));

    HTTPConduit conduit1 = (HTTPConduit) clientconfig.getConduit();
    HTTPClientPolicy pol = conduit1.getClient();

    Long timeout = this.propertyManager.get(ProxyPropertiesEnum.TIMEOUT_WEBSERVICE, Long.class);
    pol.setAsyncExecuteTimeout(timeout);
    pol.setConnectionTimeout(timeout);
    pol.setReceiveTimeout(timeout);
    conduit1.setClient(pol);

    this.client = clientLocal;



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)