Como @swanliu apontou, é devido a uma conexão ruim.
No entanto, antes de ajustar o tempo do servidor e o tempo limite do cliente, eu tentaria primeiro usar uma estratégia de pool de conexão melhor.
Agrupamento de conexões
O próprio Hibernate admite que sua estratégia de pool de conexões é mínima
Eu pessoalmente uso
C3P0
. no entanto, existem outras alternativas disponíveis, incluindo DBCP
.Confira
Abaixo está uma configuração mínima do C3P0 usada na minha aplicação:
<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 -->
Editar:
Atualizei o arquivo de configuração (Referência ), pois acabei de copiar e colar o do meu projeto anterior. O tempo limite deve resolver o problema idealmente. Se isso não funcionar para você, há uma solução cara que eu acho que você poderia dar uma olhada:
Crie um arquivo “c3p0.properties” que deve estar na raiz do classpath (ou seja, não há como substituí-lo por partes específicas do aplicativo). (Referência )
# c3p0.properties
c3p0.testConnectionOnCheckout=true
Com esta configuração cada conexão é testada antes de ser usada. No entanto, pode afetar o desempenho do site.