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.