JBoss Community

JBoss 5.1.0 GA web-service client problem when stress testing

created by Eugen Grosu in JBoss Web Services - View the full discussion

Hello,

 

We are using JBoss 5.1.0 GA, jdk 1.5_22, Solaris 10.

 

We have implemented a wsdl-to-java EJB3.0 web-service endpoint and have generated the client artifacts using wsconsume. These artifacts are included in a client project - a war that includes a Servlet that calls the endpoint using the generated WS client.

 

The web-service project is deployed as an ejb jar, which is included into an .ear.

The war project (the ws client) is deployed in the same JBoss configuration as the .ear.

 

For testing, we implemented an HttpClient that calls the Servlet, which calls the EJB3.0 endpoint.

 

Everything is working well, until performing testing with 100 threads, each sending a request 50 times.

We first created a new WS Client instance for every request, but then we decided to create a pool of these instances to gain performance.

We can not reuse the same instance because the WS Client is not thread-safe.

For the pool, we used http://commons.apache.org/pool/.

 

Here is the code that creates a new instance:

 

public Object makeObject() {
      OurEnpointWSService service = new
OurEnpointWSService();
      BindingProvider bp = (BindingProvider) service;
      bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
    
OurEnpoint port = service.getOurEndpointWSPort(); 
      return port;
}

 

At some point, after running the tests 3-4 times, we receive a lot of errors:

 

2010-09-29 14:44:04,980 ERROR [org.jboss.ws.core.CommonClient] (http-0.0.0.0-8080-305) Exception caught while (preparing for) performing the invocation:
javax.xml.ws.soap.SOAPFaultException: Unqualified {http://schemas.xmlsoap.org/soap/envelope/}Client fault
    at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.getSOAPFaultException(SOAPFaultHelperJAXWS.java:84)
    at org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.throwFaultException(SOAP11BindingJAXWS.java:107)
    at org.jboss.ws.core.CommonSOAPBinding.unbindResponseMessage(CommonSOAPBinding.java:579)
    at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:381)
    at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:290)
    at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:170)
    at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:150)
    at $Proxy569.execute(Unknown Source)
    at com.orvaal.ucipPlugin.web.IgwServlet.service(IgwServlet.java:127)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.orvaal.ucipPlugin.web.filter.IgwFilter.doFilter(IgwFilter.java:54)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:595)

 

 

I searched for a couple of days on the net, but no luck.

 

If someone can help me, I would be very greatful.

 

Thanks in advance.

 

Eugen.

Reply to this message by going to Community

Start a new discussion in JBoss Web Services at Community