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&amp;
> *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@6a10eaecto 
>> 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
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to