2013-10-16 30 views
0

我想知道,當我關閉JPA + Hibernate實體管理器時,是否真的總有一個連接會被檢入到c3p0連接池中。從我的應用程序的日誌中,我有時會注意到情況並非總是如此,即實體管理器將被關閉,之後不會檢入連接池。只有在達到maxConnectionAge時,這些連接纔會被銷燬。但是,我認爲這有時會很危險,因爲我有時也會注意到連接會再次被重新利用,儘管連接幾乎達到了最大連接時間。所以我認爲不提供這些連接進行退房可能更好,也就是說,寧願選擇年輕的連接進行退房,或者?關閉實體管理器時,是否始終將連接檢入到c3p0連接池?

+0

如果連接在maxConnectionAge處被銷燬,則必須將它們檢入池中。客戶端擁有的連接不會在maxConnectionAge被剔除。他們只會被銷燬,如果你有unreturnedConnectionTimeout設置。 –

+0

啊,好吧。我爲這兩個屬性設置了相同的時間間隔,因此連接將不會返回到連接(儘管我關閉了實體管理器...) – zazi

回答

0

好的,問題是我有相同的時間間隔maxConnectionAge和unreturnedConnectionTimeout。所以事實證明,應用程序中仍有一些開放的連接(現在已被識別和消除)。