[Carbon-dev] Error on closing JDBC MYSQL transactions
Güçlü Akkaya
guclu.akkaya at ardictech.com
Tue Dec 27 08:45:13 EST 2011
Hi all,
This time i will disturb you with another problem related to a low level code. Currently i am trying to replicate the functionality of registry with JDBC Data access. For that i copied some of the interfaces and made another component named storage ,which will be used in the wso2 greg. Currently i am testing my implementation with tsung ,a load test tool supporting many protocols. By creating virtiual users with tsung i inspect the performance of the storage component. In some cases i encounter the following exception for some requests.
TID: [0] [WSO2 Governance Registry] [2011-12-27 10:55:34,983] ERROR {org.wso2.carbon.registry.core.dataaccess.TransactionManager} - Failed to commit transaction. {org.wso2.carbon.registry.core.dataaccess.TransactionManager}
java.sql.SQLException: Total number of available connections are less than the total number of committed connections
at org.wso2.carbon.registry.core.jdbc.dataaccess.JDBCDatabaseTransaction$ManagedRegistryConnection.commit(JDBCDatabaseTransaction.java:1200)
at com.ardic.arcsp.carbon.registry.resource.core.jdbc.dataaccess.JDBCTransactionManager.commitTransaction(JDBCTransactionManager.java:170)
at com.ardic.arcsp.carbon.registry.resource.core.StorageRegistry.commitTransaction(StorageRegistry.java:352)
at com.ardic.arcsp.carbon.registry.resource.core.StorageRegistry.get(StorageRegistry.java:162)
at com.ardic.arcsp.carbon.registry.ws.api.WSRegistry.getContentById(WSRegistry.java:1037)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
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:110)
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 org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:206)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.wso2.carbon.bridge.BridgeServlet.service(BridgeServlet.java:155)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.wso2.carbon.server.TomcatServer$1.invoke(TomcatServer.java:241)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:396)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:356)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1534)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
com.ardic.arcsp.carbon.registry.resource.core.jdbc.dataaccess.JDBCTransactionManager class is just the copy of the org.wso2.carbon.registry.core.jdbc.dataaccess.JDBCTransactionManager. Since i did not want to original code with log i replicated the class and bind my dataacess layer. After i google i ecounter similar exception related to misconfiguration for sharing registry, but i am not sharing registry. So this a JDBC related matter. Can you tell me why this exception is thrown and recommend me some kind of workaround solution for this.
Thanks in advance for the answers
Fatih Güçlü Akkaya
Software Development Engineer
ARDIC ARGE BILGI VE TEKNOLOJI ÇÖZÜMLERI
APPLIED RESEARCH DEVELOPMENT INNOVATION CENTER
Tel: + 90 262 642 42 52
GSM: + 90 554 542 48 50
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.wso2.org/pipermail/carbon-dev/attachments/20111227/1fe393c2/attachment.html>
More information about the Carbon-dev
mailing list