2012-09-04 33 views
1

我們正在實施基於Liferay的Web應用程序。數據庫由JPA 2.0和Entity Manager處理。如何保持實體管理器連接活着?

當系統長時間閒置(例如8小時)時,持久性上下文中的會話將丟失,數據庫將不在訪問中。有沒有可以解決這個問題的配置?如果你使用Hibernate的persistence.xml, 你應該設置該屬性 : 休眠當你聲明

<property name="minIdle" value="1"/> 

您的數據源豆

UPDATE:

+0

我敢打賭我數據庫連接由於空閒而斷開連接?根據管理數據庫連接的方式,通常使用容器中的數據源或使用的連接池可能具有保持活動輪詢的功能。您可能會看到它是否可用 –

+0

謝謝,可能防火牆拒絕連接? –

回答

0

也許你可以設置該屬性。 c3p0.min_size:C3P0始終保持準備好的最少JDBC連接數

<property name="hibernate.c3p0.min_size" value="1"/> 
+0

我使用持久單元。我應該在我的PU.xml中插入這個屬性嗎? –

+0

我更新了我的答案。你也可以參考這個問題:http://stackoverflow.com/questions/475893/what-are-the-required-c3p0-settings-for-hibernate-in-order-to-avoid-deadlocks –