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

_______________________________________________
Carbon-dev mailing list
Carbon-dev@wso2.org
http://mail.wso2.org/cgi-bin/mailman/listinfo/carbon-dev

Reply via email to