Это должно быть одна из странных ошибок, с которыми я столкнулся.
Файл 1:
logMyStuff('Before coolFunction');
$this->obj->coolFunction();
logMyStuff('After coolFunction');
Файл 2:
public function coolFunction() {
logMyStuff('Log 1');
$sql = "update animals set cat = 'ragdoll'";
try {
logMyStuff('Log 2');
$conn = oci_connect('mydb', 'epicPass', 'DB');
logMyStuff('Log 3');
if (!$conn) {
$m = oci_error();
logMyStuff('DB connect failure: ' . $m['message']);
return false;
}
logMyStuff('Log 4');
$stid = oci_parse($conn, $sql);
logMyStuff('Log 5');
if (oci_execute($stid)) {
logMyStuff('Sweet it worked!!');
$return = true;
} else {
$m = oci_error($stid);
logMyStuff('Execute Error: ' . $m['message']);
$return = false;
}
logMystuff('Log 6');
} catch (\Exception $e) {
logMyStuff('Something really bad happened'. $e->getMessage());
return false;
}
return $return;
}
99% времени это работает нормально ... но 1% времени наши журналы
выглядеть так ...
[2017-05-08 14:00:00] - перед включением функции
[2017-05-08 14:00:00] - Журнал 1
[2017-05-08 14:00:00] - Журнал 2
[2017-05-08 14:00:00] - Журнал 3
[2017-05-08 14:00:00] - Журнал 4
[2017-05-08 14:00:00] - журнал 5
[2017-05-08 14:15:45] - Ошибка выполнения: ORA-25408: невозможно безопасно воспроизвести вызов
На что обратить внимание ...
- Ведение журнала 6 не отображается.
- Выполнение Oracle занимает 15 минут и 45 секунд.
- Наш сценарий просто умирает ... больше ничего не работает.
Хотя сообщение об ошибке от Oracle кажется зловещим, я
Еще более странным является тот факт, что журнал «Ошибка выполнения:» способен
запустить, но тогда сценарий умирает.
Есть идеи?