(PECL mysqlnd_ms < 1.6.0)
mysqlnd_ms_xa_gc — Recolecta basura de transacciones XA no finalizadas después de algún error del servidor
Recolecta basura de transacciones XA no finalizadas.
El protoclo XA es un protocolo de bloqueo. Hay casos en los que los servidores participantes en una transacción global no pueden progresar cuando el coodinador de transacciones falla o se desconecta. En tal caso, los servidores de MySQL se mantienen esperando instrucciones para finalizar la transacción XA en cuestión. Ya que las transacciones ocupan recursos, estas deberían siempre finalizarse de la manera apropiada.
La recolección de basura requiere configurar un almacén de estados para rastrear transacicones globales. Si un cliente de PHP se cae en mitad de una transacción y se inicia un nuevo cliente de PHP, el recolector de basura interno podrá enterarse de la transacción global abortada y finalizarla. Si no se configura un almacén de estado, el recolector de basura no podrá realizar ningunta tarea de limpieza.
El almacén de estados debería ser seguro ante caídas y ser de alta disponibilidad para sobrevivir a su propia caída. Actualmente, solamente se admite MySQL como almacén de estados.
La recolección de basura también se puede realizar de forma automática en segundo plano.
Ver la directiva de configuración garbage_collection
del complemento
para más detalles.
Nota: Experimental
Esta característica está actualmente en desarrollo. Podrían existir problemas y/o limitaciones. No la use en entornos de producción.
connection
Un gestor de conexión de MySQL obtenido de cualesquiera de las extensiones connect functions of the mysqli, mysql o PDO_MYSQL.
gtrid
Un identificador de transacción global (gtrid). Si se proporciona, el recolector de basura considerará únicamente la transacción. De lo contrario, se explorará el almacén de datos para cualquier transacción no finalizada.
ignore_max_retries
Indica si ignorar el ajuste de configuración max_retries
del complemento.
Si la recolección de basura falla de forma continuada y se alcanza el límite max_retries
antes de finalizar la transacción global fallida,
se pueden intentar más ejecuciones antes de investigar la causa
y resolver el probelma manualmente enviando sentencias SQL
a los participantes. Esteblecer el parámetro tiene el mismo efecto
que establecer max_retries = 0
temporalmente.
Devuelve true
si la transacción global ha sido revertida. De lo contrario, devuelve false
.