[
https://issues.apache.org/jira/browse/CXF-6239?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Atul Bisaria updated CXF-6239:
------------------------------
Attachment: SnipImage1.JPG
Heap analysis: Dominator tree showing that class
"org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager" is
retaining 94% of memory and not allowing GC.
> Out of memory when using Async connections in Apache CXF
> --------------------------------------------------------
>
> Key: CXF-6239
> URL: https://issues.apache.org/jira/browse/CXF-6239
> Project: CXF
> Issue Type: Bug
> Components: Configuration, Transports
> Affects Versions: 3.0.2
> Reporter: Atul Bisaria
> Priority: Critical
> Labels: performance
> Attachments: SnipImage1.JPG
>
>
> We are creating a webservice client using Apache CXF version 3.0.2. We are
> using CXF's async based transport as described in
> http://cxf.apache.org/docs/asynchronous-client-http-transport.html. Following
> is the code snippet from our application:
> ---------------------------------------------------------------------------------------------
> Client proxy = ClientProxy.getClient(tisInterface);
> proxy.getBus().setProperty(AsyncHTTPConduitFactory.USE_POLICY,
> UseAsyncPolicy.ALWAYS);
> proxy.getBus().setProperty(AsyncHTTPConduitFactory.MAX_CONNECTIONS,
> parConfig.getOnlineNotificationThreadCount());
> HTTPConduit conduit = (HTTPConduit) proxy.getConduit();
> HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
> httpClientPolicy.setReceiveTimeout(parConfig.getTimeout() * 1000);
> conduit.setClient(httpClientPolicy);
> ------------------------------------------------------------------------------------------
> With above configuration we are running a load of around 200 requests/second.
> On running this load we observe on Java memory analyser tool JVisualVM that
> heap size keeps on increasing continuously and after some time results in
> Java out of memory error.
> We have refactored our code to make sure that all the objects created by our
> application are properly garbage collected. The heap dump generated from
> JVisualVM shows that there are some classes used within Apache CXF library
> which might be causing this issue.
> Almost 94% of memory is retained by object of class
> org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager
> Is this an issue with the async transport provided by Apache CXF or we are
> missing something in code or configuration?
> Another observation is that when we use UseAsyncPolicy.NEVER instead of
> UseAsyncPolicy.ALWAYS in above code, the out of memory problem does not
> occur, but then the value set in AsyncHTTPConduitFactory.MAX_CONNECTIONS
> property does not work.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)