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&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@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

Reply via email to