mysqlnd_ms_xa_gc

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_gcRecolecta basura de transacciones XA no finalizadas después de algún error del servidor

Descripción

mysqlnd_ms_xa_gc ( mixed $connection [, string $gtrid [, boolean $ignore_max_retries ]] ) : int

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.

Parámetros

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.

Valores devueltos

Devuelve TRUE si la transacción global ha sido revertida. De lo contrario, devuelve FALSE.