Возвращается ORA-25408: не может безопасно повторить вызов - PullRequest
0 голосов
/ 08 мая 2018

Это должно быть одна из странных ошибок, с которыми я столкнулся.

Файл 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 кажется зловещим, я Еще более странным является тот факт, что журнал «Ошибка выполнения:» способен запустить, но тогда сценарий умирает.

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...