Както @swanliu посочи, това се дължи на лоша връзка.
Въпреки това, преди да коригирам времето на сървъра и времето за изчакване на клиента, първо бих опитал да използвам по-добра стратегия за обединяване на връзки.
Пул на връзки
Самият Hibernate признава, че неговата стратегия за обединяване на връзки е минимална
Аз лично използвам C3P0
. има обаче други налични алтернативи, включително DBCP
.
Разгледайте
По-долу е дадена минимална конфигурация на C3P0, използвана в моето приложение:
<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 -->
Редактиране:
Актуализирах конфигурационния файл (Справка
), тъй като току-що копирах и поставих този за моя проект по-рано. Времето за изчакване би трябвало в идеалния случай да реши проблема, ако това не работи за вас, има скъпо решение което мисля, че бихте могли да разгледате:
Създайте файл „c3p0.properties“, който трябва да бъде в основата на пътя към класа (т.е. няма начин да го замените за определени части от приложението). (Справка )
# c3p0.properties
c3p0.testConnectionOnCheckout=true
С тази конфигурация всяка връзка се тества преди да бъде използвана. Това обаче може да повлияе на производителността на сайта.