2014-05-08 166 views
1

在嘗試使用Worklight中的SQL適配器訪問數據庫時,處於幾小時不活動狀態之後。獲取以下錯誤,但第二次如果試圖連接數據庫,我可以獲取數據。SQL適配器IBM Worklight中的異常

com.ibm.ws.rsadapter.jdbc.WSJdbcConnectionW¯¯ DSRA8650W:錯誤關閉JDBC孩子包裝, [email protected] com.ibm.db2.jcc .am.SqlException:[jcc] [10120] [10943] [4.13.127]無效 操作:語句關閉。 ERRORCODE = -4470,SQLSTATE = null在連接的底層套接字,套接字輸入流或套接字輸出流的連接的 操作期間,發生通信錯誤 。 錯誤位置:T4Agent.sendRequest() - flush(-1)。消息: 連接重置。 ERRORCODE = -44

99,SQLSTATE = 08001。

目前我已經設置了maxConnectionPerNode 1000和requestTimeoutInSeconds是60

後爲期一天的搜索才知道,對於JEE應用程序,這個問題來的時候連接池具有失效的連接,或者我們正在努力訪問已關閉的預準備語句如何從Worklight刷新JDBC池?或如何使連接活着?

回答

2

我假設你正在談論你的開發環境。
連接池已超時,因此第一次調用時出現錯誤,第二次調用成功。一旦你轉移到生產環境,我假設你不會有幾小時的不活動,並且你可以配置連接策略。

例如WebSphere Application Server的自由配置文件配置編輯server.xml文件,併爲每個<dataSource>元素添加一個<connectionManager>元素與agedTimeout屬性:<connectionManager agedTimeout="timeout"/>

例如:

<dataSource jndiName="jdbc/AppCenterDS" transactional="false"> 
    <connectionManager agedTimeout="7h30m"/> 
    <jdbcDriver libraryRef="MySQLLib"/> 
    ... 
</dataSource> 

看到的更多信息:https://pic.dhe.ibm.com/infocenter/wrklight/v6r1m0/topic/com.ibm.worklight.installconfig.doc/install_config/c_handling_stale_mysql_connections.html

+1

目前我在TESTING環境中獲得例外。當我在早上下載新的應用程序時,第一次嘗試從數據庫獲取細節時,我正在獲取此異常。然而在開發過程中我從來沒有遇到過這個問題感謝你的回答。生病嘗試一下,並標記你的答案,如果它的工作。 – Bluewings

+0

非常感謝@ravidor。現在工作正常。我還添加了minPoolSize =「1」以避免陳舊的連接 – Bluewings

相關問題