给定时间段后,参数unreturnedConnectionTimeout
会使未返回的连接超时。我试图确定是否应该在生产persistence.xml
中使用它?使用此功能的一大好处是,连接池将能够从泄漏的连接中恢复。一个很大的缺点是,很难检测到泄漏的连接。
我应该在生产应用程序中使用unreturnedConnectionTimeout
吗?如果是,其价值应该是多少?我还应该考虑其他优点/缺点吗?
最佳答案
理想情况下,您应该调试Connection泄漏,然后不要在生产中使用unreturnedConnectionTimeout
。
要调试连接泄漏,请同时设置unreturnedConnectionTimeout
和debugUnreturnedConnectionStackTraces
,请参见http://www.mchange.com/projects/c3p0/#configuring_to_debug_and_workaround_broken_clients(存档的here)。然后,当您不再有泄漏时,请取消设置这两个参数。
如果由于某种原因无法调试和修复连接泄漏的应用程序,则可以在生产环境中设置unreturnedConnectionTimeout
,在这种情况下,仅设置unreturnedConnectionTimeout
并让c3p0清除应用程序忘记的内容是一个合理的解决方法。