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, tools, and much more.