XMLWordPrintable

    • Icon: Task Task
    • Resolution: Obsolete
    • Icon: Major Major
    • None
    • JBossAS-4.0.1 Final
    • None

      Implement optional transaction recovery

      The simplest mechanism is to do this is with a local database
      using the last resource gambit where during its "prepare" it logs the XID in a table.

      If this last resource fails to commit, recovery will not find the transaction
      in the table which means it will rollback the whole transaction.

      This has limitations where a different local resource is required within the transaction
      but not this local database used as the recovery log.

      Another implementation is a local file. Though more complicated it should give superior
      performance.
      But, it does not work well with the last resource gambit, e.g. you cannot tell
      whether the jdbc commit() suceeded or failed if it crashes just at the point of this invocation
      before the result is returned from the db.

      The other work required:
      1) Possibly, simplify the dependencies in the JCA module so we can run the recovery earlier.
      Currently the RARs need the transaction manager at deployment time. The
      recovery service needs to be an external service depending upon both the
      tm and the managed connection factories.
      At least this will require a GUID for the XID so we can avoid duplicates between
      unrecovered XIDs and any new XIDs created before recovery is complete.

      2) JBossMQ needs to implement XAResource.recover()

          There are no Sub-Tasks for this issue.

              Unassigned Unassigned
              adrian.brock Adrian Brock (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: