Обычный обработчик DBI :: db потеряет все настройки сеанса базы данных, которые были выполнены с помощью $ dbh-> do ('SET variable_name = value').
Существует ли какой-либо DBIx :: * класс / пакет или так далее, который предоставляет метод, подобный "set_session", для установки переменных сеанса и может восстанавливать эти переменные после обнаружения потери соединения (тайм-аут соединения в 90% реальных случаев)?
Может выглядеть так:
# inside the user code:
$dbh->set(variable => 'string', yet_another_variable => 42)
# inside the DBIx::* package:
sub reconnect {
# ...
while (my ($var, $val) = each %{$self->saved_vars}) {
$self->dbh->do("SET $var=?", {}, $val)
}
# ...
}