Setting <defaultAutoCommit>false</defaultAutoCommit> is correct way.
On Fri, May 9, 2014 at 10:36 PM, Isuru Perera <[email protected]> wrote: > AFAIK, relaxAutoCommit=true is applicable to only to MySQL. I'm not sure > it will work for PostgreSQL > > With relaxAutoCommit=true, we just suppress the exception in MySQL. > > Ideally we should disable the auto commit from the data source > configuration. > > Try adding > <defaultAutoCommit>false</defaultAutoCommit>. > > I'm not sure about the impact this will have in components other than API > Manager. If other components rely on Auto Commit, there will be issues. > > APIM Team, how should this be handled in with other databases, such as > PostgreSQL > > Docs Team, Important configurations such as defaultAutoCommit are missing > in Carbon docs [1]. We need to add all configs, other than the elements we > have master-datasources.xml by default. > > [1] > https://docs.wso2.org/display/Carbon420/Configuring+master-datasources.xml > > > On Fri, May 9, 2014 at 5:37 AM, Uvindra Dias Jayasinha > <[email protected]>wrote: > >> This is because auto commit is turned on by default in your installation. >> >> You need to append "relaxAutoCommit=true" to the end of the DB url in the >> master-datasources.xml file. Here is what an example with MySQL would look >> like, >> >> <datasource> >> <name>WSO2AM_DB</name> >> <description>The datasource used for API Manager >> database</description> >> <jndiConfig> >> <name>jdbc/WSO2AM_DB</name> >> </jndiConfig> >> <definition type="RDBMS"> >> <configuration> >> <url>j >> dbc:mysql://localhost:3306/WSO2AM_DB?autoReconnect=true& >> *relaxAutoCommit=true*</url> >> <username>wso2carbon</username> >> <password>wso2carbon</password> >> >> <driverClassName>com.mysql.jdbc.Driver</driverClassName> >> <maxActive>50</maxActive> >> <maxWait>60000</maxWait> >> <testOnBorrow>true</testOnBorrow> >> <validationQuery>SELECT 1</validationQuery> >> <validationInterval>30000</validationInterval> >> </configuration> >> </definition> >> </datasource> >> >> Add the same entry to your DB URL >> >> >> >> On Fri, May 9, 2014 at 5:49 PM, Shavantha Weerasinghe <[email protected] >> > wrote: >> >>> Hi All >>> >>> The below exception is thrown when I attempt to create an API on APIM140 >>> connected to postgress database >>> >>> >>> >>> >>> >>> [2014-05-09 17:46:15,721] ERROR - ApiMgtDAO Error while adding the API: >>> org.wso2.carbon.apimgt.api.model.APIIdentifier@6a10eaec to the database >>> org.postgresql.util.PSQLException: Cannot commit when autoCommit is >>> enabled. >>> at >>> org.postgresql.jdbc2.AbstractJdbc2Connection.commit(AbstractJdbc2Connection.java:705) >>> at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>> at java.lang.reflect.Method.invoke(Method.java:597) >>> at >>> org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) >>> at >>> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) >>> at >>> org.wso2.carbon.ndatasource.rdbms.ConnectionRollbackOnReturnInterceptor.invoke(ConnectionRollbackOnReturnInterceptor.java:51) >>> at >>> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) >>> at >>> org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:71) >>> at >>> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) >>> at >>> org.apache.tomcat.jdbc.pool.interceptor.ConnectionState.invoke(ConnectionState.java:153) >>> at >>> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) >>> at >>> org.apache.tomcat.jdbc.pool.TrapException.invoke(TrapException.java:41) >>> at >>> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) >>> at >>> org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) >>> at $Proxy13.commit(Unknown Source) >>> at >>> org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO.addAPI(ApiMgtDAO.java:3564) >>> at >>> org.wso2.carbon.apimgt.impl.APIProviderImpl.addAPI(APIProviderImpl.java:372) >>> at >>> org.wso2.carbon.apimgt.impl.UserAwareAPIProvider.addAPI(UserAwareAPIProvider.java:45) >>> at >>> org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject.jsFunction_addAPI(APIProviderHostObject.java:397) >>> 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.mozilla.javascript.MemberBox.invoke(MemberBox.java:160) >>> at >>> org.mozilla.javascript.FunctionObject.call(FunctionObject.java:411) >>> at >>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66) >>> at >>> org.jaggeryjs.rhino.publisher.modules.api.c3._c1(/publisher/modules/api/add.jag:6) >>> at >>> org.jaggeryjs.rhino.publisher.modules.api.c3.call(/publisher/modules/api/add.jag) >>> at >>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2347) >>> at >>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:272) >>> at >>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:127) >>> at >>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76) >>> at >>> org.jaggeryjs.rhino.publisher.modules.api.c0._c1(/publisher/modules/api/module.jag:5) >>> at >>> org.jaggeryjs.rhino.publisher.modules.api.c0.call(/publisher/modules/api/module.jag) >>> at >>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0._c1(/publisher/site/blocks/item-add/ajax/add.jag:70) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag) >>> at >>> org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:57) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0._c0(/publisher/site/blocks/item-add/ajax/add.jag:4) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag) >>> at >>> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:401) >>> at >>> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3003) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.exec(/publisher/site/blocks/item-add/ajax/add.jag) >>> at >>> org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:441) >>> at >>> org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:191) >>> at >>> org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:269) >>> at >>> org.jaggeryjs.jaggery.core.JaggeryServlet.doPost(JaggeryServlet.java:29) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:755) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >>> at >>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) >>> at >>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) >>> at >>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) >>> at >>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) >>> at >>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) >>> at >>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:177) >>> at >>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:161) >>> at >>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) >>> at >>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57) >>> at >>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >>> at >>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) >>> at >>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) >>> at >>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) >>> at >>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) >>> 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) >>> [2014-05-09 17:46:15,726] ERROR - APIProviderHostObject Error while >>> adding the API- test28-1.0.0 >>> org.wso2.carbon.apimgt.api.APIManagementException: Error in adding API >>> :test28 >>> at >>> org.wso2.carbon.apimgt.impl.APIProviderImpl.addAPI(APIProviderImpl.java:374) >>> at >>> org.wso2.carbon.apimgt.impl.UserAwareAPIProvider.addAPI(UserAwareAPIProvider.java:45) >>> at >>> org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject.jsFunction_addAPI(APIProviderHostObject.java:397) >>> 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.mozilla.javascript.MemberBox.invoke(MemberBox.java:160) >>> at >>> org.mozilla.javascript.FunctionObject.call(FunctionObject.java:411) >>> at >>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66) >>> at >>> org.jaggeryjs.rhino.publisher.modules.api.c3._c1(/publisher/modules/api/add.jag:6) >>> at >>> org.jaggeryjs.rhino.publisher.modules.api.c3.call(/publisher/modules/api/add.jag) >>> at >>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2347) >>> at >>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:272) >>> at >>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:127) >>> at >>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76) >>> at >>> org.jaggeryjs.rhino.publisher.modules.api.c0._c1(/publisher/modules/api/module.jag:5) >>> at >>> org.jaggeryjs.rhino.publisher.modules.api.c0.call(/publisher/modules/api/module.jag) >>> at >>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0._c1(/publisher/site/blocks/item-add/ajax/add.jag:70) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag) >>> at >>> org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:57) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0._c0(/publisher/site/blocks/item-add/ajax/add.jag:4) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag) >>> at >>> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:401) >>> at >>> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3003) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag) >>> at >>> org.jaggeryjs.rhino.publisher.site.blocks.item_add.ajax.c0.exec(/publisher/site/blocks/item-add/ajax/add.jag) >>> at >>> org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:441) >>> at >>> org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:191) >>> at >>> org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:269) >>> at >>> org.jaggeryjs.jaggery.core.JaggeryServlet.doPost(JaggeryServlet.java:29) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:755) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) >>> at >>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >>> at >>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) >>> at >>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) >>> at >>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) >>> at >>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) >>> at >>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) >>> at >>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:177) >>> at >>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:161) >>> at >>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) >>> at >>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57) >>> at >>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) >>> at >>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) >>> at >>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) >>> at >>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) >>> at >>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) >>> 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) >>> Caused by: org.wso2.carbon.apimgt.api.APIManagementException: Error >>> while adding the API: >>> org.wso2.carbon.apimgt.api.model.APIIdentifier@6a10eaec to the database >>> at >>> org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO.handleException(ApiMgtDAO.java:3911) >>> at >>> org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO.addAPI(ApiMgtDAO.java:3566) >>> at >>> org.wso2.carbon.apimgt.impl.APIProviderImpl.addAPI(APIProviderImpl.java:372) >>> ... 52 more >>> Caused by: org.postgresql.util.PSQLException: Cannot commit when >>> autoCommit is enabled. >>> at >>> org.postgresql.jdbc2.AbstractJdbc2Connection.commit(AbstractJdbc2Connection.java:705) >>> at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>> at java.lang.reflect.Method.invoke(Method.java:597) >>> at >>> org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) >>> at >>> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) >>> at >>> org.wso2.carbon.ndatasource.rdbms.ConnectionRollbackOnReturnInterceptor.invoke(ConnectionRollbackOnReturnInterceptor.java:51) >>> at >>> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) >>> at >>> org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:71) >>> at >>> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) >>> at >>> org.apache.tomcat.jdbc.pool.interceptor.ConnectionState.invoke(ConnectionState.java:153) >>> at >>> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) >>> at >>> org.apache.tomcat.jdbc.pool.TrapException.invoke(TrapException.java:41) >>> at >>> org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) >>> at >>> org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) >>> at $Proxy13.commit(Unknown Source) >>> at >>> org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO.addAPI(ApiMgtDAO.java:3564) >>> ... 53 more >>> [2014-05-09 17:46:15,729] ERROR - add:jag >>> "org.wso2.carbon.apimgt.api.APIManagementException: Error while adding the >>> API- test28-1.0.0" >>> >>> Shavantha Weerasinghe >>> Senior Software Engineer QA >>> WSO2, Inc. >>> lean.enterprise.middleware. >>> http://wso2.com >>> http://wso2.org >>> Tel : 94 11 214 5345 >>> Fax :94 11 2145300 >>> >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> Regards, >> Uvindra >> >> Mobile: 777733962 >> >> _______________________________________________ >> Dev mailing list >> [email protected] >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > Isuru Perera > Senior Software Engineer | WSO2, Inc. | http://wso2.com/ > Lean . Enterprise . Middleware > > about.me/chrishantha > -- Nuwan Dias Associate Tech Lead - WSO2, Inc. http://wso2.com email : [email protected] Phone : +94 777 775 729
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
