2

アプリケーションをデプロイすると、しばらくすると次の例外が発生します。

    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 の構成ですか?

<property name="autoReconnect" value="true"/>SOで見つけたように、JPA.xmlに追加しました。ただし、これで問題は解決しません。また、GlassFish (3.1.2) 管理で接続プールのタイムアウト (0 に設定) を削除しました。

4

1 に答える 1

0

これはドライバ パラメータであるため、GlassFish 接続プールで URL を変更する必要があります。管理 UI: リソース -> JDBC -> JDBC 接続プール -> あなたのプール -> 追加のプロパティ。

もう 1 つのオプションは、[詳細設定] タブで接続検証を有効にすることです。

于 2013-05-28T14:29:12.493 に答える