这必须是我经历过的陌生人之一。
文件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] - 在coolFunction之前
[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:无法安全重播通话
要注意的事情......
虽然来自Oracle的错误消息似乎很险恶,但事情我 发现更奇怪的是“执行错误:'日志能够 运行但脚本会死掉。
有什么想法吗?