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
>

We are not depending on autocommit within our DAO logic. We have explicit
transaction commit blocks. (This also applies to Registry and UM).
Hence autocommit should always be set to false as Nuwan has given.




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



-- 
/sumedha
m: +94 773017743
b :  bit.ly/sumedha
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to