Data services: SQL exception: Connection is closed error occurs when sending 
~200 requests to a data service which has a query configured with stored proc
----------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: WSAS-695
                 URL: http://wso2.org/jira/browse/WSAS-695
             Project: WSO2 WSAS
          Issue Type: Bug
          Components: data-services
         Environment: winxp ,jdk15, MySQL5, WSAS2.2-qabuild6
            Reporter: Charitha Kankanamge
         Assigned To: sumedha rubasinghe
            Priority: Critical


I'm getting a connection closed - SQL exception when sending multiple requests 
to a data service in the default system configuration (MySQL+WinXP default 
configuration).
The following simple data service request has been sent using Apachebench.

ab -p D:\testing-resources\ds-request-sp.xml -n 200 -k -H "SOAPAction: 
urn:operation1" -T "text/xml; charset=UTF-8" 
"http://192.168.1.2:9762/services/blogds";

Request:
------------
<?xml version='1.0' encoding='UTF-8'?>
   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
      <s:Body>
         <p:operation1 xmlns:p="http://ws.wso2.org/dataservice";>
            <empid>1</empid>
         </p:operation1>
      </s:Body>
   </soapenv:Envelope>

Following exception can be seen in WSAS console when ~200 messages are 
transmitted to the server.

ERROR [2008-01-15 21:19:55,406]  Connection is closed.
ERROR [2008-01-15 21:19:55,406]  Error occured
org.apache.axis2.AxisFault: Exception occurred while trying to commit.
        at 
org.wso2.ws.dataservice.DBUtils.getStoredProcedureResult(DBUtils.java:433)
        at org.wso2.ws.dataservice.DBUtils.getRDBMSResult(DBUtils.java:175)
        at org.wso2.ws.dataservice.DBUtils.processSQLQuery(DBUtils.java:108)
        at org.wso2.ws.dataservice.DBUtils.invoke(DBUtils.java:658)
        at 
org.wso2.ws.dataservice.DBMessageReceiver.invokeBusinessLogic(DBMessageReceiver.java:41)
        at 
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:42)
        at 
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:148)
        at 
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
        at 
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:121)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.wso2.adminui.AdminUIServletFilter.doFilter(AdminUIServletFilter.java:142)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Connection is closed.
        at 
org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.checkOpen(PoolngDataSource.java:175)
        at 
org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.commit(PoolingDataSource.java:199)
        at 
org.wso2.ws.dataservice.DBUtils.getStoredProcedureResult(DBUtils.java:428)
        ... 28 more
ERROR [2008-01-15 21:19:55,421]  Error occured while connecting to database
com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Data source 
rejected establishment of connection,  message from server: "Too many 
connections"
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1079)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2032)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:729)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:298)
        at 
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:283)
        at java.sql.DriverManager.getConnection(DriverManager.java:525)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at 
org.apache.commons.dbcp.DriverManagerConnectionFactory.createConnection(DriverManagerConn
ectionFactory.java:65)
        at 
org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.ja
va:294)
        at 
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:840)
        at 
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
        at org.wso2.ws.dataservice.DBUtils.createConnection(DBUtils.java:1137)
        at 
org.wso2.ws.dataservice.DBUtils.checkDBConnectionStatus(DBUtils.java:241)
        at 
org.wso2.ws.dataservice.DBUtils.getStoredProcedureResult(DBUtils.java:268)
        at org.wso2.ws.dataservice.DBUtils.getRDBMSResult(DBUtils.java:175)
        at org.wso2.ws.dataservice.DBUtils.processSQLQuery(DBUtils.java:108)
        at org.wso2.ws.dataservice.DBUtils.invoke(DBUtils.java:658)
        at 
org.wso2.ws.dataservice.DBMessageReceiver.invokeBusinessLogic(DBMessageReceiver.java:41)
        at 
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractI
nOutSyncMessageReceiver.java:42)
        at 
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:9
6)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:148)
        at 
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUt
ils.java:275)
        at 
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:121)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

        at 
org.wso2.adminui.AdminUIServletFilter.doFilter(AdminUIServletFilter.java:142)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j
ava:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Htt
p11BaseProtocol.java:667)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.ja
va:80)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

Data service configuration is attached here with.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://wso2.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

_______________________________________________
Wsas-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/wsas-java-dev

Reply via email to