re-mass test with SOAP request

Hi

I installed last release of “Gatling 2.2.1”
i processed webservice tests ; this webservice is deployed in “Axis2/Tomcat6”.
the scenario is described below :

val httpProtocol = http
.acceptCharsetHeader(“ISO-8859-1,utf-8;q=0.7,*;q=0.7”)
.acceptHeader(“application/soap+xml”)
.acceptEncodingHeader(“gzip, deflate”)
.acceptLanguageHeader(“fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3”)
.userAgentHeader(“Apache-HttpClient/4.1.1 (java 1.5)”)
.disableClientSharing

val buf = new StringBuilder

buf.append("<soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelope” xmlns:ser=“http://serviceWeb.server.test.com” xmlns:xsd=“http://beans.serviceWeb.server.test.com/xsd">\n")
buf.append(“soap:Header/\n”)
buf.append(“soap:Body\n”)
buf.append(“ser:checkIDScan\n”)
buf.append(“ser:request\n”)
buf.append(“xsd:certificattrue</xsd:certificat>\n”)
buf.append(“xsd:confirmOnDoubtfalse</xsd:confirmOnDoubt>\n”)
buf.append(“xsd:image1”).append(image1).append(”</xsd:image1>\n")
buf.append(“xsd:imageType1jpg</xsd:imageType1>\n”)
buf.append(“xsd:image2”).append(image2).append("</xsd:image2>\n")
buf.append(“xsd:imageType2jpg</xsd:imageType2>\n”)
buf.append(“xsd:mobilefalse</xsd:mobile>\n”)
buf.append(“xsd:usernamepatrick</xsd:username>\n”)
buf.append(“xsd:passwordpatrick</xsd:password>\n”)
buf.append(“xsd:referenceTESTGATLING</xsd:reference>\n”)
buf.append("</ser:request>\n")
buf.append("</ser:checkIDWithResoScan>\n")
buf.append("</soap:Body>\n")
buf.append("</soap:Envelope>\n")

val scn1 = scenario(“SOAPClientcheckIDScan_1”)
.exec(http(“SOAPClientcheckIDScan_1”).post(url).body(StringBody(buf.toString))
.check(status.is(200))
)

setUp(scn1.inject(atOnceUsers(7)).protocols(httpProtocol))

}

an error occurs at the seven test : “AxisFault : org.apache.axis2.AxisFault: Timeout waiting for connection”
it seems : for Axis2 you try to connect many times for the same httpclient and the request failed because no available connections in the connection pool

stacktrace
org.apache.axis2.AxisFault: Timeout waiting for connection
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:197)
at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:404)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:231)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at com.resocom.portail.server.serviceWeb.proxyOCR.WebServiceResoComV4Stub.eResoScanTwoFace(WebServiceResoComV4Stub.java:179)
at com.resocom.portail.server.serviceWeb.ServiceResoScan.traiteImage(ServiceResoScan.java:238)
at com.resocom.portail.server.serviceWeb.ResoComWS.getResponse(ResoComWS.java:173)
at com.resocom.portail.server.serviceWeb.ResoComWS.checkIDWithResoScan(ResoComWS.java:134)
at sun.reflect.GeneratedMethodAccessor544.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
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.resocom.portail.server.servlet.GWTCacheControlFilter.doFilter(GWTCacheControlFilter.java:46)
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:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.commons.httpclient.ConnectionPoolTimeoutException: Timeout waiting for connection
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConnection(MultiThreadedHttpConnectionManager.java:497)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnectionWithTimeout(MultiThreadedHttpConnectionManager.java:416)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:621)
at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:193)
… 38 more

Best Regards
Patrick Perche