Uploaded image for project: 'UX Product'
  1. UX Product
  2. UXPROD-3636

Define new transaction model to protect against parallel processing



    • New Feature
    • Status: Closed (View Workflow)
    • P3
    • Resolution: Won't Do
    • None
    • None
    • None
    • Nolana (R3 2022)
    • Out of scope
    • Thunderjet
    • 0
    • R2



      This was split from UXPROD-3434 to allow the team time to define an approach and implement a POC. The actual solution will need to be implemented in a following release. The decision was motivated by the time constraints surrounding the MG release


      Current situation or problem: When 2 users or separate mods run operations in parallel, they can send both summaries before sending the operations. mod-finance-storage is not saving previous summaries with the same id (which in practice is the order id for encumbrances), so one of the summaries sent will have no effect, resulting in an error for the second one:

      "All expected transactions already processed"

      In scope

      Implement a POC: Redesign transaction summaries to allow parallel usage. Using unique ids (as opposed to for instance order ids)  could be part of the solution, but we don't want to accumulate too many records in the summary tables, so they would have to be deleted when no longer in use.

       When redesigning, care should be taken to avoid requiring a check for 404 errors, as was done in mod-orders' TransactionSummariesService.java for MODORDERS-545 (normal operations should not report errors in the logs).

      Out of scope

      Actual implementation of the chosen approach in the Finance app

      Use case(s)

      Proposed solution/stories
      Wiki : https://wiki.folio.org/display/DD/Support+for+transaction+processing+by+two+or+more+users+in+parallel

      Links to additional info


      TestRail: Results


          Issue Links



                dennisbridges Dennis Bridges
                dennisbridges Dennis Bridges
                0 Vote for this issue
                3 Start watching this issue



                  TestRail: Runs

                    TestRail: Cases