3
我有一個使用的Eclipse持久性服務JSF應用程序 - 2.1.1.v20100817-r8050,和我有時會收到以下錯誤:內部異常:值java.sql.SQLException:無效狀態,連接對象被關閉
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Invalid state, the Connection object is closed.
Error Code: 0
Call: SELECT XXXXX FROM XXXXX
bind => [/Home/Footer/]
Query: ReadAllQuery(name="WWW.find" referenceClass=WWW sql="SELECT XXXXX FROM XXXXX")
我不知道是什麼導致它。以下函數在「return q.getResultList();」中引發異常線。
public List<WWW> find(String url) {
}
EntityManager em = getEntityManager();
try {
Query q = em.createNamedQuery("WWW.find");
q.setParameter("url", url);
return q.getResultList();
} finally {
em.close();
}
}
我們有SQL Server 2005和數據庫不下來。這是最近持續發生的事情。以下是我們在persistence.xml文件中設置的屬性。對此應該改變的任何評論?
<properties>
<property name="javax.persistence.jdbc.password" value="password"/>
<property name="javax.persistence.jdbc.user" value="user"/>
<property name="javax.persistence.jdbc.driver" value="net.sourceforge.jtds.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:jtds:sqlserver://SERVER:1433/DB"/>
<property name="eclipselink.ddl-generation" value="none"/>
<property name="eclipselink.jdbc.timeout" value="20"/>
<property name="eclipselink.jdbc.connections.wait-timeout" value="20"/>
<property name="javax.persistence.query.timeout" value="20"/>
<property name="eclipselink.allow-zero-id" value="true"/>
</properties>
這裏是我的編輯類 公共類WWWJpaController {
public WWWWJpaController() {
emf = Persistence.createEntityManagerFactory("properties");
}
public WWWWJpaController(String unitName) {
emf = Persistence.createEntityManagerFactory(unitName);
}
private EntityManagerFactory emf = null;
public EntityManager getEntityManager() {
return emf.createEntityManager();
}
public List<WWW> find(String url) {
EntityManager em = getEntityManager();
try {
Query q = em.createNamedQuery("WWW.find");
q.setParameter("url", url);
return q.getResultList();
}finally{
em.close();
}
}
}
顯示你的'getEntityManager()'。順便說一句:爲什麼你不使用'@ PersistenceContext'?這樣你就不必自己創建/關閉它。 – BalusC
添加了我的getEntityManager()。你有任何使用@PersistenceContext的例子的鏈接?我從來沒有使用過。 – user1024941
@BalusC。我剛剛發現,當我們的服務器備份完成時會發生這些問題。我們正在虛擬服務器上運行,當該服務器備份時,它將進入「保存模式」。這會有什麼影響嗎? – user1024941