sql >> Databáze >  >> RDS >> Mysql

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Po uzavření připojení nejsou povoleny žádné operace

Jak zdůraznil @swanliu, je to způsobeno špatným připojením.
Nicméně před úpravou časování serveru a časového limitu klienta bych nejprve zkusil použít lepší strategii sdružování připojení.

Sdružování připojení

Hibernate sám přiznává, že jeho strategie sdružování připojení je minimální

Osobně používám C3P0 . nicméně jsou k dispozici další alternativy včetně DBCP .
Podívejte se

Níže je uvedena minimální konfigurace C3P0 použitá v mé aplikaci:

<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="c3p0.acquire_increment">1</property> 
<property name="c3p0.idle_test_period">100</property> <!-- seconds --> 
<property name="c3p0.max_size">100</property> 
<property name="c3p0.max_statements">0</property> 
<property name="c3p0.min_size">10</property> 
<property name="c3p0.timeout">1800</property> <!-- seconds --> 

Upravit:
Aktualizoval jsem konfigurační soubor (Reference ), protože jsem právě zkopíroval a vložil ten pro svůj projekt dříve. Časový limit by měl v ideálním případě problém vyřešit. Pokud to pro vás nefunguje, existuje drahé řešení na kterou se myslím můžete podívat:

Vytvořte soubor „c3p0.properties“, který musí být v kořenovém adresáři cesty třídy (tj. žádný způsob, jak jej přepsat pro konkrétní části aplikace). (Reference )

# c3p0.properties
c3p0.testConnectionOnCheckout=true

S touto konfigurací je každé připojení před použitím testováno. Může to však ovlivnit výkon webu.



  1. Výhody NoSQL databází – Vše, co potřebujete vědět

  2. MediumBlob ve schématu databáze Laravel

  3. MODIFY COLUMN v oracle - Jak zkontrolovat, zda je sloupec s možnou hodnotou Null, než jej nastavíte na hodnotu Null?

  4. Najděte název odkazované tabulky pomocí názvu tabulky, pole a schématu