JAX-WS client invocation time keeps increasing over life of JVM in EAP 6
Issue
JAX-WS client invocations keep increasing over the life of the JVM. Some notes about the client:
- The
Serviceobject is cached between invocations - To ensure the application's custom JAX-WS handlers are set on the port,
((BindingProvider)port).getBinding().setHandlerChain(handlerChain)is invoked before every invocation. -
The handler chain can also just be set once to cause the issue:
final Service service = Service.create(wsdl, ns); service.setHandlerResolver(new HandlerResolver() { public List<Handler> getHandlerChain(PortInfo info) { log.warn("Retrieving custom handler chain"); return handlerChain; } }); -
There are lots of stack traces like this in a tread dump with the issue, showing high CPU in
org.apache.cxf.phase.PhaseInterceptorChain.add:"http-/10.150.85.229:8080-74" daemon prio=10 tid=0x00007f9fe0043800 nid=0x7a76 runnable [0x00007fa06f4dc000] java.lang.Thread.State: RUNNABLE at org.apache.cxf.phase.PhaseInterceptorChain.insertInterceptor(PhaseInterceptorChain.java:494) at org.apache.cxf.phase.PhaseInterceptorChain.add(PhaseInterceptorChain.java:208) at org.apache.cxf.phase.PhaseInterceptorChain.add(PhaseInterceptorChain.java:185) at org.apache.cxf.phase.PhaseInterceptorChain.add(PhaseInterceptorChain.java:176) at org.apache.cxf.phase.PhaseChainCache.getChain(PhaseChainCache.java:93) at org.apache.cxf.phase.PhaseChainCache.get(PhaseChainCache.java:77) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:744)
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
