Ich habe einige PHP-CLI-Skripte, die lange laufen (24 Stunden und mehr), und obwohl sie regelmäßig "Commits" durchführen, hatte ich einige Probleme mit verwaisten Transaktionen - möglicherweise verursacht durch den Absturz der Skripte.
Meine Lösung bestand darin, die Transaktion wie folgt zu erstellen - es ist schon ein Jahr her, dass ich das recherchiert habe und ich kann mich nicht mehr genau an die Gründe für diese Einstellungen erinnern, aber es schien einige Probleme mit der Datenbank zu lösen.
$dbh = ibase_connect($dbhost, $dbuser, $dbpass); $trans = ibase_trans(IBASE_WRITE+IBASE_COMMITTED+IBASE_REC_VERSION+IBASE_WAIT,$dbh);
Ich habe jetzt auf php 5.3.5 aktualisiert und festgestellt, dass die Zeile ibase_trans einen Segmentierungsfehler verursacht. Auf der php ibase_trans Seite gibt es einen Hinweis:
"Das Verhalten dieser Funktion wurde in PHP 5.0.0 geändert. Der erste Aufruf von ibase_trans() gibt nicht die Standardtransaktion einer Verbindung zurück."
Meine Frage ist also, ob ich die Transaktionsargumente für die Standardtransaktion festlegen kann... Die zweite Frage ist, ob ich bei dem Versuch, dies trotzdem zu tun, völlig daneben liege!
Gracias