Skip to content

Commit f638d05

Browse files
committed
DOCSP-35201 adding more details for retry logic
1 parent 6d76765 commit f638d05

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

source/crud/transactions.txt

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -304,24 +304,25 @@ the ``startTransaction()`` method:
304304
Transaction Errors
305305
------------------
306306

307-
If you are using the Core API to perform a transaction, you must incorporate
308-
error-handling logic into your application for the following errors:
309-
310-
- ``TransientTransactionError``: Raised if a write operation errors
311-
before the driver commits the transaction. To learn more about this error, see the
312-
:manual:`TransientTransactionError description
313-
</core/transactions-in-applications/#transienttransactionerror>` on
314-
the Drivers API page in the Server manual.
315-
- ``UnknownTransactionCommitResult``: Raised if the commit operation
316-
encounters an error. To learn more about this error, see the
317-
:manual:`UnknownTransactionCommitResult description
318-
</core/transactions-in-applications/#unknowntransactioncommitresult>` on
319-
the Drivers API page in the Server manual.
320-
321-
To learn how to implement retry logic to prevent these errors while using the
322-
Core API, see the :manual:`Core API section
307+
Since MongoDB transactions are :website:`ACID compliant
308+
</basics/acid-transactions>`, the driver may produce errors during operation to
309+
ensure your data maintains consistent. If the following errors occur, the
310+
transaction must be retried:
311+
312+
- ``TransientTransactionError``: Raised if a write operation encounters an error
313+
before the driver commits the transaction.
314+
- ``UnknownTransactionCommitResult``: Raised if the commit operation encounters
315+
an error.
316+
317+
If you are using the Core API to perform a transaction, you must implement the
318+
error-handling logic into your application. To do so, you must create separate
319+
functions within your application that explicitly retry transaction and commit
320+
operations when these errors are detected. To see an
321+
example of this retry logic, see the :manual:`Core API section
323322
</core/transactions-in-applications/#core-api>` on the Drivers API page in the
324323
Server manual.
325324

326-
The Convenient Transaction API incorporates retry logic for these error
327-
types, so the driver retries the transaction until there is a successful commit.
325+
The Convenient Transaction API incorporates retry logic for these error types,
326+
so the driver automatically retries the transaction until there is a successful
327+
commit. You do not have to explicitly declare functions for the API to retry
328+
transaction operations with these errors.

0 commit comments

Comments
 (0)