我想使用PoolingDataSource作爲我的連接池(API位於:http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/PoolingDataSource.html),但我不知道如何處理池時,我不再需要它。如果我想連接到一個新的數據庫,並且不再需要舊池中的連接,該怎麼辦?游泳池沒有密切的方法。如何正確銷燬Java中的Apache Commons DBCP池?
3
A
回答
3
你不一定需要殺死這個池來創建一個新池。
您可以使用maxIdle,timeBetweenEvictionRunsMillis和minEvictableIdleTimeMillis參數(請參閱here)管理其中的連接,以確保在合理的時間內關閉閒置連接。
或者您可以用編程方式配置GenericObjectPool這些參數,並在創建PoolingDataSource時使用。如果你想強制它有一個close()方法。
0
你在使用什麼樣的游泳池?如果您使用的是AbandonedObjectPool,那麼這是Commons Pool的GenericObjectPool的一個子類,它有一個close()方法。
2
對不起,我不回答你的直接問題,但我可以推薦不使用DBCP?它有一些嚴重的問題,這是其他圖書館從中學到和改進。
在那裏有much better pools。
+1
雖然相當準確;應當指出DBCP一直積極維護自從提供這個答案。 –
相關問題
- 1. 如何正確銷燬AsyncTasks?
- 2. 銷燬ZFS池
- 3. Apache Commons DBCP奇怪的行爲
- 4. 監控Commons DBCP?
- 5. 正確的線程銷燬
- 6. (PHP)如何正確銷燬會話cookie?
- 7. 如何正確地銷燬鏈表?
- 8. 如何正確銷燬骨幹視圖?
- 9. 如何正確銷燬CKEditor實例?
- 10. Android:正確銷燬asyncTask?
- 11. 正確銷燬dojo DataStore
- 12. DBCP數據源池?
- 13. 如何銷燬java對象?
- 14. DBCP連接池
- 15. Rails雙重多態依賴:銷燬沒有正確銷燬
- 16. dbcp Servlet中的對象池
- 17. DBCP連接池loginTimeout
- 18. 正確使用java Commons BeanUtils?
- 19. 如何在Sencha Touch中正確銷燬()我的彈出框
- 20. 正確的方法來銷燬鏈表?
- 21. 如何爲連接池配置Hibernate,Spring和Apache dbcp?
- 22. 銷燬Java中的線程
- 23. 如何在java中銷燬進程
- 24. 正確導入Apache Commons Math包
- 25. HtmlEmail不能正確呈現HTML(apache commons)
- 26. Java Apache Commons用戶
- 27. apache-commons-dbcp連接池 - 在開發中工作,而不是在更深的環境中
- 28. javax.servlet.ServletException:java.lang.NoClassDefFoundError:org/apache/commons/pool/KeyedObjectPoolFactory
- 29. 在dbcp中使用PreparedStatement池
- 30. 的Java如何銷燬Singleton實例
我使用的是PoolingDataSource我在提問時說。我也鏈接到它的API文檔。 – Buttons840