2013-05-20 183 views
2

當我部署我的應用程序,一段時間後,我得到這個異常:GlassFish應用服務器部署和MySQLNonTransientConnectionException

javax.servlet.ServletException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException 
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed. 

我使用的持久性單元,使用這些設置:

<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
     <persistence-unit name="PU" transaction-type="JTA"> 
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
    <jta-data-source>myconnhere</jta-data-source> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <shared-cache-mode>NONE</shared-cache-mode> 
    <properties> 
     <property name="eclipselink.ddl-generation" value="create-tables"/> 
    <property name="autoReconnect" value="true"/> 
    </properties> 
    </persistence-unit> 
</persistence> 

哪有我避免/解決了這個問題?這是一個Java問題或MySQL配置?

我在JPA.xml中添加了<property name="autoReconnect" value="true"/> - 正如我在SO上發現的那樣。但是,這不能解決問題。 我也刪除了GlassFish(3.1.2)管理中的連接池超時(設置爲0)。

+0

這個問題與JSF沒有直接關係,它可以發生在任何Java Web應用程序中。 –

+0

@LuiggiMendoza找到了解決方案? – Rob

+0

包含完整的異常堆棧跟蹤,您是否使用servlet中的JTA事務? – James

回答

0

這是一個驅動程序參數,因此您必須修改GlassFish連接池中的URL。在管理用戶界面中:資源 - > JDBC - > JDBC連接池 - >您的池 - >其他屬性。

另一個選項是在高級選項卡中啓用連接驗證。

相關問題