MongoDB\Driver\Session::startTransaction
(mongodb >=1.5.0)
MongoDB\Driver\Session::startTransaction — Запускає транзакцію
Опис
final public MongoDB\Driver\Session::startTransaction(?array $options = null): 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 | |
Добавлен параметр"maxCommitTimeMS" |
Дивіться також
- MongoDB\Driver\Manager::startSession() - Запускає новий сеанс клієнта для використання з цим клієнтом
- MongoDB\Driver\Session::commitTransaction() - Фіксує транзакцію
- MongoDB\Driver\Session::abortTransaction() - перериває транзакцію