Pregunta

Tengo algunos scripts de PHP CLI que se ejecutan durante mucho tiempo (24 horas más) y, aunque hacen los conocimientos regulares, tuve algunos problemas con las transacciones huérfanas, posiblemente causadas por los guiones que se desploman.

Mi solución fue crear la transacción de la siguiente manera: fue hace un año que investigué esto y no puedo recordar las razones precisas de estos entornos, pero parecía resolver algunos problemas con la base de datos.

$ dbh= ibase_connect ($ dbhost, $ dbuser, $ dbass); $ trans= ibase_trans (ibase_write + ibase_committed + ibase_rec_version + ibase_wait, $ dbh);

Ahora se han actualizado a PHP 5.3.5 y encontró que la línea IBASE_TRANS causa una falla de segmentación. En la página PHP IBASE_TRANS hay una nota:

"El comportamiento de esta función se ha cambiado en PHP 5.0.0. La primera llamada a ibase_TRANS () no devolverá la transacción predeterminada de una conexión".

Entonces, mi pregunta es si puedo establecer los argumentos de transacción para la transacción predeterminada ... Pregunta secundaria, si estoy perdiendo por completo el punto en tratar de hacer esto de todos modos.

gracias

¿Fue útil?

Solución

No debe trabajar con transacción predeterminada.

Defina tu transacción como FODIFO:

$T = ibase_trans($params, $database);

Después de ejecutar su consulta:

 ibase_query($T, $SQL, $Params)

o puede usar IBASE_PREPARE & IBASE_EXECUTE.

después de eso, llame

ibase_commit_ret($T); // this mentain transaction active

o

ibase_commit($T) // this commit work close transaction

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top