sql >> Databasteknik >  >> RDS >> Mysql

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Inga operationer tillåtna efter att anslutningen stängts

Som @swanliu påpekade beror det på en dålig anslutning.
Men innan jag justerar serverns timing och klienttimeout skulle jag först försöka använda en bättre strategi för anslutningspoolning.

Anslutningspoolning

Hibernate medger själv att dess strategi för anslutningspoolning är minimal

Jag använder personligen C3P0 . men det finns andra tillgängliga alternativ inklusive DBCP .
Kolla in

Nedan är en minimal konfiguration av C3P0 som används i min applikation:

<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 --> 

Redigera:
Jag uppdaterade konfigurationsfilen (Referens ), eftersom jag precis hade kopierat in den för mitt projekt tidigare. Timeouten borde helst lösa problemet. Om det inte fungerar för dig finns det en dyr lösning som jag tror att du kan ta en titt på:

Skapa filen "c3p0.properties" som måste finnas i roten av klasssökvägen (dvs. inget sätt att åsidosätta den för vissa delar av programmet). (Referens )

# c3p0.properties
c3p0.testConnectionOnCheckout=true

Med denna konfiguration testas varje anslutning innan den används. Det kan dock påverka webbplatsens prestanda.



  1. Ordna om tabellkolumner i Oracle

  2. Hur skapar man användare för en db i postgresql?

  3. Analysera CSV och exportera till Mysql-databas i Grails

  4. SSIS-uppgift för import av inkonsekvent kolumnantal?