「com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:連線關閉後不允許執行任何操作」
問題:
原因:
解決方案:
1.調整伺服器與客戶端逾時
伺服器(MySQL 設定):
客戶端(Hibernate/JDBC 連線池):
使用連接池(例如C33P0或DBCP)來有效管理資料庫連線。連線池會建立並維護一個預先建立的連線池,減少每次開啟和關閉連線的開銷。
使用「testConnectionOnCheckout」屬性在使用連線之前測試連線。這可確保偵測到任何過時的連接並將其從池中刪除。
定期監控應用程式日誌<hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/xyz</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <!-- Enable C3P0 connection pooling --> <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> <property name="c3p0.max_size">20</property> <property name="c3p0.min_size">5</property> <property name="c3p0.max_statements">0</property> <property name="c3p0.timeout">600</property> <property name="c3p0.idleConnectionTestPeriod">3600</property> <property name="c3p0.testConnectionOnCheckout">true</property> </session-factory> </hibernate-configuration>以儘早檢測任何潛在的連線問題。 更新的 Hibernate 設定:提供的更新的 Hibernate 設定檔使用 C3P0 連線池並包含建議設定:
以上是如何解決「com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:連線關閉後不允許執行任何操作」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!