2011-12-05 26 views
2

可能會在爲JPA EntityManager提供服務的連接池中結束陳舊連接。在使用這種連接時會拋出一個[generic]異常,但什麼是可移植(非供應商特定)的方式來確定連接是否過時(以及是否應該重試)?如何處理JPA中的陳舊連接

我在找什麼等同於JDBC Connection.isValid()方法。

感謝

+0

通常情況下,您在連接池配置中使用「測試查詢」處理此問題。但是,這是特定於供應商的。 –

+0

通常您的連接池應處理此問題。你在應用程序中看到這樣的錯誤嗎?你在使用什麼連接池,以及它是如何配置的? – aishwarya

+0

不幸的是,連接池被設置爲禁用了「測試連接」(並且這超出了我的控制範圍),因此我試圖對它進行編碼 – chris

回答

0

如果您使用的EclipseLink,用的EclipseLink的連接錯誤彙集它會自動檢測並重新連接上通訊故障死連接。

如果您使用的是DataSource,那麼您確實需要在DataSource中啓用連接才能工作。否則,您無法從DataSource池中驅逐連接,您可以嘗試獲得另一個連接,但是如果DataSource不知道連接已經死亡,它可能會讓您或其他線程恢復無效連接。

相關問題