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:59:04 UTC

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

     [ https://issues.apache.org/jira/browse/CXF-7348?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christof Tinnes updated CXF-7348:
---------------------------------
    Description: 
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 see exactly one of the requests and one of the responses, as if everything works fine. 

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;

  was:
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;


> 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 see exactly one of the requests and one of the responses, as if everything works fine. 
> 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)