Я использую jruby и версию mysql2 gem версии mysql2 (0.3.11). Моя база данных.yml выглядит примерно так.
production:
<<: *common
database: database
host: host
port: 3306
username: username
password: ********
pool: 5
pool_initial: true
checkout_timeout: 0.3
properties:
connectTimeout: 250
socketTimeout: 90000
В моем случае один из запросов превысил время ожидания сокета 90 секунд, и после этого каждый из запросов, использующих одно и то же соединение из пула, начал давать сбой. Я ожидаю, что mysql2 должен переподключиться, но в моем случае он не переподключается. Я просмотрел документацию, но ничего не нашел.
Edit1: я немного отладил и использую activerecord-jdbc-adapter в производственной среде вместо драгоценного камня mysql2, и я попытался решить проблему с помощью autoReconnect: true, но похоже, что это не рекомендуется, поскольку это может привести к нарушению согласованности. http://pages.citebite.com/p4x3a0r8pmhm
Edit2: версия - jruby (1.7.4) и activerecord-jdbc-adapter (1.2.9.1)
reconnect: true
в свойdatabase.yml
? - person Rustik   schedule 19.03.2018