(2 из 2)      << | < | 1 | 2 | > | >>

После перехода на новую версию все было хорошо до тех пор, пока в логах не была обнаружена ошибка потери соединения с базой данных "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"
 )

К моему удовлетворению все получилось. После очистки, компиляции и развертывания, в логах, наконец, стало чисто. Прошло уже несколько суток и все веб-приложения функционируют без проблем.

(2 из 2)      << | < | 1 | 2 | > | >>

Комментарии (0)

Автор (*):Город:
Эл.почта:Сайт:
Текст (*):