LINUX.ORG.RU

perl AnyEvent::DBI::MySQL. Как правильно реализовать обнаружение в скрипте ситуацию с внезапной аварией (или недоступностью) MySQL сервера?

 


0

1

скрипт крутится демоном
Возможна ситуация, когда из скрипта к БД улетает запрос и сразу после того как сервер БД получил запрос с ним случилась авария. Как такие случаи отрабатывать в коде?
Помещать в eval весь блок кода в котором может случиться неожиданность во время работы с БД?
Или какие практики есть на этот счет?

PS

Сейчас ловлю в коде после каждого обращения к БД аварийные ситуации, но не смотря на RaiseError=>0

$dbh2 = AnyEvent::DBI::MySQL->connect("DBI:mysql:$database:$dbhostname", $user, $pass,{RaiseError=>0,PrintError=>1});
когда выключаю MySQL сервер скрипт все равно вылетает иногда с ошибками во время работы с БД, причем google про эти ошибки ничего не знает.

★★★★
  • покажи минимальный скрипт
  • perldoc AnyEvent::DBI
anonymous
()

уточню скрипт вылетает не в момент создания коннекта к БД, а когда сервер искусственно кладу а в это время скрипт делает prepare, execute, do

Vlad-76 ★★★★
() автор топика
Ответ на: комментарий от Vlad-76

вопрос. Скрипт отправил запрос, а MySQL сервер вдруг вылетел не успев ответить на полученный запрос - соответственно скрипт «вылетел».
Необходмо после блока eval в случае ошибки при работе с БД вызывать

$res = $dbh2->disconnect;
?
$dbh2 хэндл не уничтожается во время выполнении методов prepare, execute, do и др. ?

Vlad-76 ★★★★
() автор топика
Последнее исправление: Vlad-76 (всего исправлений: 2)

Я использую Perl и мой скрипт падает с ошибкой. Помогите пожалуйста.

Пример кода/минимальный скрипт. Сообщения об ошибках обязательно.

anonymous
()

Переделал концепцию скрипта, пока все работает как и ожидалось.
Если что вдруг, куда модно выкладывать скрипты нынче?

Vlad-76 ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.