-
Type: Task
-
Resolution: Fixed
-
Priority: Unknown
-
Affects Version/s: None
-
Component/s: None
Use Case
As a... driver engineer
I want... sessions and transactions to support CSOT
So that... the driver can have full CSOT support
User Impact
- N/A; new feature
Dependencies
- Required to release CSOT
Unknowns
- questions that need to be answered to determine implementation
Acceptance Criteria
Implementation Requirements
- Add defaultTimeoutMS option to ClientSession and support timeoutMS for:
- commitTransaction
- abortTransaction
- withTransaction
- endSession
- Ensure that if defaultTimeoutMS option is not specified, it inherits from parent MongoClient
- Ensure that if timeoutMS is set when calling session.withTransaction that the timeoutMS value is applied to the entire withTransaction call
- Ensure that when an explicit session with a timeoutMS value is used, a MongoAPIError is thrown if timeoutMS is also set at the operation level for operations that are part of a withTransaction callback
- Ensure that timeoutMS is refreshed for the abortTransaction operation if the withTransaction callback errors and the transaction must be aborted
Testing Requirements
- Unskip spec tests in following files
- sessions-override-operation-timeoutMS
- sessions-override-timeoutMS
- sessions-inherit-timeoutMS
- Implement the following spec prose tests
Documentation Requirements
- This ticket does not have documentation requirements. See NODE-5688
Follow Up Requirements
- N/A
- has to be done before
-
NODE-6197 Merge CSOT feature branch
- In Progress