Тъй като DBCP поддържа върнатите mysql връзки отворени за предстоящи заявки за връзка, те стават жертви на Изчакване на MySQL Server .
DBCP има редица функции, които могат да помогнат (може да се използва, като се започне с Tomcat 5.5 IIRC).
validationQuery="SELECT 1"
testOnBorrow="true"
Проверката гарантира, че връзката е валидна, преди да я върне към уеб приложение, изпълняващо метода 'borrow'. Флагът, разбира се, активира тази функция.
Ако времето за изчакване (според мен 8 часа) е изтекло и връзката е мъртва, тогава се тества нова връзка (ако вече няма такава, тя се създава) и се предоставя на уеб приложението.
Други възможни подходи:
-
използвайте
testWhileIdle="true"
DBCP в настройките на вашите ресурси, за да проверите и неактивните връзки, преди да бъде открита ефективна заявка. -
Използвайте „connectionProperties“, за да втвърдите връзката си с MySQL (напр.
autoReconnect/autoReconnectForPools=true
)