爲了訪問DB我已創建使用com.mchange.v2.c3p0.ComboPooledDataSource數據源具有以下性質 `設置爲與ComboPooledDataSource的JdbcTemplate
<property name="initialPoolSize" value="5" />
<property name="minPoolSize" value="5" />
<property name="maxPoolSize" value="10" />
<property name="idleConnectionTestPeriod" value="200" />
<property name="acquireIncrement" value="1" />
<property name="maxStatements" value="25" />
<property name="numHelperThreads" value="3" />`
吾道類擴展JDBCDaoSupport和上述數據源被設置成JDBCDaoSupport其中inturn提供用於執行查詢的JDBCTemplate。我沒有使用任何事務管理器。 我現在有兩個問題:
- 如何交易的管理?在插入之前,JDBCTemplate本身是否創建事務?
- 如果數據庫不可用,初始化C3P0池進入無限wait..I想應該有一些財產,我可以設置爲池的初始化超時。 我嘗試'
<property name="acquireRetryAttempts" value="1" />
,但不知道這是否做它的正確途徑。
默認C3P0使得30次嘗試與1000毫秒的延遲['acquireRetryDelay' = 1000]聯繫數據庫['acquireRetryAttempts' = 30]。它不會永遠嘗試。但是,除非你設置'breakAfterAcquireFailure' =屬實,這將開始新一輪每當一個新的客戶端自帶要求一個連接嘗試的,所以它可能似乎是這樣。我對JDBCTemplate一無所知;也許你應該爲該文章或Spring框架添加一個標籤來吸引某些人的注意力。 –