Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-5562

An read-only XA transaction that has a timeout never has the timer canceled when the transaction is complete

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 10.8.2.2
    • Fix Version/s: 10.8.3.0, 10.9.1.0
    • Component/s: JDBC
    • Labels:
      None
    • Environment:
      Solaris 10
      Glassfish V2.1.1
    • Bug behavior facts:
      Deviation from standard, Seen in production

      Description

      From the EmbedConnection.java comment for "xa_prepare".

      // On a prepare call, xa allows an optimization that if the
      // transaction is read only, the RM can just go ahead and
      // commit it. So if store returns this read only status -
      // meaning store has taken the liberty to commit already - we
      // needs to turn around and call internalCommit (without
      // committing the store again) to make sure the state is
      // consistent. Since the transaction is read only, there is
      // probably not much that needs to be done.

      When XATransactionController.XA_RDONLY is returned, no "commit" or "rollback" will be received. If a XA transaction timer was started (could be through the derby.jdbc.xaTransactionTimeout=xxx for example), then these transactions will not have their timer canceled and will later attempt to cancel the transaction and fail as the transaction no longer exists.

        Attachments

        1. DERBY-5562.patch
          0.9 kB
          Brett Bergquist
        2. D5562.java
          2 kB
          Knut Anders Hatlen
        3. d5562-1a-with-test.diff
          6 kB
          Knut Anders Hatlen

          Activity

            People

            • Assignee:
              knutanders Knut Anders Hatlen
              Reporter:
              bbergquist Brett Bergquist
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: