3
我使用jOOQ 2.6.1和從Tomcat池(docs),我已經設置autocommit爲true。AutoCommit不能用於jOOQ 2.6.1和Tomcat池
PoolProperties p = new PoolProperties();
p.setDefaultAutoCommit(true);
p.setJdbcInterceptors("org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;" +
"org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer");
p.setRemoveAbandoned(true);
p.setRemoveAbandonedTimeout(10);
然後創建一個Apache DataSource對象:
org.apache.tomcat.jdbc.pool.DataSource dataSource = new DataSource
dataSource.setPoolProperties(p);
我用的是LazyConnectionDataSourceProxy從春:
LazyConnectionDataSourceProxy lazyConnection = new LazyConnectionDataSourceProxy(dataSource);
從jOOQ 2.6.1使用工廠:
public Factory createFactory() {
Settings settings = new Settings();
settings.getExecuteListeners().add(
"de.si.srv.data.SpringExceptionTranslationExecuteListener");
return new Factory(dataSource, SQLDialect.POSTGRES, settings);
}
如果我例如選擇這樣做:
createFactory().select().from().fetch()
... jOOQ應自動關閉連接!但是jOOQ不會關閉連接。所有連接都會在一段時間後放棄。
有沒有人知道我的問題的解決方案?我想讓jOOQ自動關閉連接!或者我應該使用其他池化框架?
哪個更適合jOOQ?
jooq 3.x ist的問題是我們必須遷移很多事情。修補這個問題會更容易。但我不知道從哪裏開始。我應該完全修補哪些代碼? – user2115378
我同意,遷移到jOOQ 3.x的影響對於這樣的問題可能太大了。但是該領域的各種修復並非微不足道。修補它們並不容易。如果您希望我們的幫助爲jOOQ 2.6.x解決此問題,您可以[通過支持渠道與我們聯繫](http://www.jooq.org/support#a=support-custom-engineering)獲得幸運,或者[用戶組](https://groups.google.com/forum/#!forum/jooq-user)。您要評估這是否比自己維護連接生命週期更簡單。無論如何,我認爲這超出了這個堆棧溢出問題的範圍。 –
大多數時候它的工作與廢棄的連接greate,因爲我已經設置了選項「setRemoveAbandoned(true); setRemoveAbandonedTimeout(10);」因此連接正在返回到池中。但有時我會得到以下錯誤:this exc:org.springframework.jdbc。UncategorizedSQLException:jOOQ;未分類SQLException for SQL ... SQL狀態[null];錯誤代碼[0];連接已關閉。嵌套異常是java.sql.SQLException:Connection has been been closed。「如果你知道」連接已經關閉「的解決方案問題,這將對我有幫助 – user2115378