После перехода на новую версию все было хорошо до тех пор, пока в логах не была обнаружена ошибка потери соединения с базой данных "No operations allowed after connection closed". Появлялась она не очень часто (несколько раз в сутки) и крайне нерегулярно, никакой связи с действиями на сайте или нагрузкой обнаружено не было.
Как всегда бывает в таких случаях, начался квест по поиску в интернет откликов пользователей уже столкнувшихся с этой проблемой. Была найдена следующая тема в форуме поддержки play-framework в группах Google(groups.google.com):
https://groups.google.com/forum/#!msg/play-framework/7PBnjiXkNuU/sxXJqYG9OtMJ
Выяснилось, что это ошибка в новой версии библиотеки BoneCP, которую использует Play для своего anorm. В результате обсуждения народ пришел к выводу, что установка в conf/application.conf параметров
db.default.maxConnectionAge=0 db.default.connectionTestStatement="SELECT 1"
как бы нейтрализует эту ошибку. К сожалению у меня это не сработало, ошибки потери соединения после этих установок не прекратились.
Версия библиотеки BoneCP, в которой разработчики допустили эту ошибку, - 0.8.0. Она зафиксирована на bugs.launchpad.net:
https://bugs.launchpad.net/bonecp/+bug/1243551
Судя по обсуждению здесь, разработчик на момент написания статьи еще не обнаружил причину, из-за которой происходит ошибка потери соединения. Он лишь отметил, что все сообщения об ошибках приходят от пользователей сервера MySql.
Cмириться с этой проблемой и ждать когда же разработчики ее исправят мне не хотелось и я попробовал откатить библиотеку BoneCP на предыдущую версию 0.7.1.RELEASE, с которой не было никаких проблем. Для этого в файле project/Build.scala при задании зависимостей была закомментирована строка с jdbc и в конец добавлены две новые строки:
val appDependencies = Seq(
//jdbc,
anorm,
"mysql" % "mysql-connector-java" % "5.1.26",
...
"com.typesafe.play" %% "play-jdbc" % "2.2.1" exclude("com.jolbox", "bonecp"),
"com.jolbox" % "bonecp" % "0.7.1.RELEASE"
)К моему удовлетворению все получилось. После очистки, компиляции и развертывания, в логах, наконец, стало чисто. Прошло уже несколько суток и все веб-приложения функционируют без проблем.
| Автор (*): | Город: | ||
| Эл.почта: | Сайт: | ||
| Текст (*): | |||

