Có vẻ như MySQL hoặc tường lửa đang giết chết các kết nối không hoạt động của bạn đang lơ lửng trong nhóm kết nối jdbc của bạn trong một thời gian dài:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 4,665,488 milliseconds ago.
Kiểm tra giá trị của wait_timeout trên MySQL.
Bạn có thể thử với cài đặt DBCP ví dụ. validationQuery, testOnBorrow và testWhileIdle.
Một sự kết hợp là 'đai và niềng răng', và có thể sẽ giải quyết vấn đề của bạn với chi phí hiệu suất là:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="validationQuery" value="SELECT 1"/>
<property name="testOnBorrow" value="true"/>
</bean>
Phần trên sẽ kiểm tra các kết nối mỗi khi bạn mượn từ pool.