WSO2 - MSSQL导致提交错误

时间:2014-01-17 21:48:59

标签: api database-connection wso2

配置WSO2 API Manager版本1.5.0以使用SQL Server作为我的数据库时,请执行以下操作: http://docs.wso2.org/display/AM150/Setting+up+with+MS+SQL

对于安装配置文件的第1步,它们会告诉您更新master-datasources.xml文件以匹配其示例。

更新并启动API Manager后,我在日志中收到以下错误: 错误{org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO} - 无法回滚获得用户评级{org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO} java.sql.SQLException:在自动提交模式下不应调用commit()。

1 个答案:

答案 0 :(得分:3)

我们尝试了几件事。首先,我们在SQL Server(2008r2)上禁用了自动提交。

这没有帮助,错误仍在继续。在http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html

研究jdbc连接之后

我发现了一个设置:

        <defaultAutoCommit>false</defaultAutoCommit>
master-datasources.xml中的每个数据库定义都需要

例如:

<datasource>
    <name>WSO2_CARBON_DB</name>
    <description>The datasource used for registry and user manager</description>
    <jndiConfig>
        <name>jdbc/WSO2CarbonDB</name>
    </jndiConfig>
    <definition type="RDBMS">
        <configuration>
            <defaultAutoCommit>false</defaultAutoCommit>
            <url>jdbc:jtds:sqlserver://server:port/db_name</url>
      <username>user</username>
            <password>pwd</password>
            <driverClassName>net.sourceforge.jtds.jdbc.Driver</driverClassName>
            <maxActive>50</maxActive>
            <maxWait>60000</maxWait>
            <testOnBorrow>true</testOnBorrow>
            <validationQuery>SELECT 1</validationQuery>
            <validationInterval>30000</validationInterval>
        </configuration>
    </definition>
</datasource>

WSO2的文档未引用我找到的此设置。当您的产品使用../carbon管理站点时,它可能会正确设置。