MongoDB\Driver\Session::startTransaction
En esta página
MongoDB\Driver\Session::startTransaction
Inicia una transacción
Descripción#
php
final public MongoDB\Driver\Session::startTransaction([array $options]): voidphp
Inicia una transacción multi-documento asociada a la sesión. En un momento dado, solo se puede tener una transacción abierta para una sesión. Después de iniciar una transacción, el objeto de sesión debe ser pasado a cada operación a través de la opción "session" (por ejemplo MongoDB\Driver\Manager::executeBulkWrite) para asociar esta operación a la transacción.
Las transacciones pueden ser confirmadas a través de MongoDB\Driver\Session::commitTransaction, y anuladas con MongoDB\Driver\Session::abortTransaction. Las transacciones también se anulan automáticamente cuando la sesión se cierra por la recolección de basura o al llamar explícitamente a MongoDB\Driver\Session::endSession.
Parámetros#
options
Las opciones pueden ser pasadas como argumento a este método. Cada elemento de este array de opciones reemplaza la opción correspondiente de la opción "defaultTransactionOptions", si se define al iniciar la sesión con MongoDB\Driver\Manager::startSession.
| Opción | Tipo | Descripción |
|---|---|---|
| maxCommitTimeMS | integer | El tiempo máximo en milisegundos para permitir que una sola comando Si se especifica, |
| readConcern | MongoDB\Driver\ReadConcern |
Una preocupación de lectura a aplicar a la operación. Esta opción está disponible en MongoDB 3.2+ y se traducirá en una excepción en el momento de la ejecución si se especifica para una versión más antigua del servidor. |
| readPreference | MongoDB\Driver\ReadPreference |
Una preferencia de lectura a utilizar para seleccionar un servidor para la operación. |
| writeConcern | MongoDB\Driver\WriteConcern |
Una preocupación de escritura a aplicar a la operación. |
Valores devueltos#
No se retorna ningún valor.
Errores/Excepciones#
Lanza una excepción
MongoDB\Driver\Exception\InvalidArgumentException
en caso de error durante el análisis de un argumento.
Lanza una
MongoDB\Driver\Exception\CommandException
si la transacción no pudo ser iniciada debido a un problema en el lado del servidor (por ejemplo, un bloqueo no pudo ser obtenido).
Lanza una
MongoDB\Driver\Exception\RuntimeException
si la transacción no pudo ser iniciada (por ejemplo, una transacción ya estaba en curso).
Historial de cambios#
| Versión | Descripción |
|---|---|
| PECL mongodb 1.6.0 | La opción "maxCommitTimeMS" fue añadida. |
Véase también#
MongoDB\Driver\Manager::startSession
MongoDB\Driver\Session::commitTransaction
MongoDB\Driver\Session::abortTransaction