2014-01-17 54 views
2

在配置WSO2 API Manager版本1.5.0在使用SQL Server作爲我的數據庫中的說明: http://docs.wso2.org/display/AM150/Setting+up+with+MS+SQLWSO2 - MSSQL會導致錯誤犯

用於設置配置文件第1步,他們會告訴你更新master-datasources.xml文件以匹配它們的示例。

更新和開始API管理器之後,我在日誌中有以下錯誤: 錯誤{} org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO - 無法回滾獲取用戶評級{org.wso2。 carbon.apimgt.impl.dao.ApiMgtDAO} java.sql.SQLException:在自動提交模式下,不應該調用commit()。

回答

3

我們嘗試了幾件事情。首先,我們禁用了SQL Server(2008r2)上的自動提交功能。

這並沒有幫助,錯誤仍在繼續。在研究的JDBC連接後:http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html

我發現了一個設置:需要

 <defaultAutoCommit>false</defaultAutoCommit> 

每個數據庫定義主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管理網站時,它可能會正確設置它。

+0

是的。儘管WSO2文檔沒有提到它,但如果您將MSSQL與WSO2 API Manager一起使用,則必須在連接URL中使用此參數或等效項來避免此問題。 –