Uploaded image for project: 'PHP ORMs'
  1. PHP ORMs
  2. PHPORM-125

Control transactions retries manually

    • Type: Icon: Task Task
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Doctrine
    • None

      The transactional commit logic currently uses the convenient transactions API, which will retry a transaction for up to 120 seconds as long as transient errors occur. This time limit is not configurable in the API itself, but can be controlled using the timeoutMS setting introduced in the CSOT specification. However, PHP doesn't implement that specification yet, so any transaction may block requests for up to 120 seconds, which is not ideal in a web context.

      To alleviate this problem, ODM should re-implement the functionality of the convenient transactions API with a different timeout mechanism. For the time being, the transaction should be retried only once, with that value potentially being configurable in the future. A time-based timeout could also be considered down the road.

            Assignee:
            andreas.braun@mongodb.com Andreas Braun
            Reporter:
            andreas.braun@mongodb.com Andreas Braun
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: