ऐसा प्रतीत होता है कि MySQL या फ़ायरवॉल आपके निष्क्रिय कनेक्शन को समाप्त कर रहा है जो आपके jdbc कनेक्शन पूल में लंबे समय से लटके हुए हैं:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 4,665,488 milliseconds ago.
wait_timeout का मान जांचें MySQL पर।
आप DBCP सेटिंग के साथ खेल सकते हैं जैसे वेलिडेशनक्वेरी, टेस्टऑनबोरो और टेस्टव्हाइलआइडल।
एक विन्यास जो 'बेल्ट और ब्रेसिज़' है, और शायद प्रदर्शन की कीमत पर आपकी समस्या का समाधान करेगा:
<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>
जब भी आप पूल से उधार लेंगे, उपरोक्त हर बार कनेक्शन का परीक्षण करेगा।