MongoDB\Driver\Session::startTransaction
(mongodb >=1.5.0)
MongoDB\Driver\Session::startTransaction — Запускает транзакцию
Описание
$options
= ?
) : void
Запускает многодокументную транзакцию, связанную с сеансом. В любой
момент времени вы можете иметь не более одной открытой транзакции для сеанса. После запуска
транзакции объект сеанса должен быть передан каждой операции с помощью опции
"session"
(например,
MongoDB\Driver\Manager::executeBulkWrite()), чтобы
связать эту операцию с транзакцией.
Транзакции могут быть зафиксированы через MongoDB\Driver\Session::commitTransaction() и прерваны с помощью MongoDB\Driver\Session::abortTransaction(). Транзакции также автоматически прерываются, когда сеанс закрывается из сборки мусора или явно вызывается MongoDB\Driver\Session::endSession().
Список параметров
-
options
-
Параметры могут быть переданы в качестве аргумента этому методу. Каждый элемент в этом массиве опций переопределяет соответствующую опцию из опции
"defaultTransactionOptions"
, если она установлена при запуске сеанса с MongoDB\Driver\Manager::startSession().options Опция Тип Описание maxCommitTimeMS integer Максимальный период времени в миллисекундах, в течение которого может выполняться одна команда
commitTransaction
.Если указано,
maxCommitTimeMS
должно быть 32-разрядным целым числом со знаком, большим или равным нулю.readConcern MongoDB\Driver\ReadConcern Гаранатия чтения для применения к операции.
Эта опция доступна в MongoDB 3.2+ и приведет к исключению во время выполнения, если указана для более старой версии сервера.
readPreference MongoDB\Driver\ReadPreference Предпочтение чтения, используемая для выбора сервера для выполнения операции.
writeConcern MongoDB\Driver\WriteConcern Гаранатия записи для применения к операции.
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Ошибки
- При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
- Выдает исключение MongoDB\Driver\Exception\CommandException, если транзакция не может быть запущена из-за проблемы на стороне сервера (например, не удалось получить блокировку).
- Выдает исключение MongoDB\Driver\Exception\RuntimeException, если транзакция не может быть запущена (например, транзакция уже была запущена).
Список изменений
Версия | Описание |
---|---|
PECL mongodb 1.6.0 |
Добавлен параметр |
Смотрите также
- MongoDB\Driver\Manager::startSession() - Запускает новый клиентский сеанс для использования с этим клиентом
- MongoDB\Driver\Session::commitTransaction() - Фиксирует транзакцию
- MongoDB\Driver\Session::abortTransaction() - Прерывает транзакцию