Details

    • Type: Sub-task Sub-task
    • Status: Closed
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.2.0
    • Component/s: jdbc, kernel
    • Labels:
      None

      Description

      OpenJPA occasionally needs to perform work in a non-business transaction (see AbstractJDBCSeq.java). In a transactional environment, one way that this is achieved is by suspending the current JTA transaction, starting a new one, doing the work, cleaning up the new tx, and resuming the original one. Some environments do not allow direct transaction control, but mechanisms such as stateless session beans can often be used to kick off atomic operations that should execute in a separate transaction.

      We could easily add ManagedRuntime.executeInNewTransaction(Runnable) that captured this slightly-coarser-grained transaction control. The default implementation could simply do suspend(), begin(), invoke Runnable.run(), commit()/rollback(), resume().

        Issue Links

          Activity

          Donald Woods made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Michael Dick made changes -
          Fix Version/s 1.2.0 [ 12313102 ]
          Resolution Fixed [ 1 ]
          Status Open [ 1 ] Resolved [ 5 ]
          Kevin Sutter made changes -
          Parent OPENJPA-61 [ 12351985 ]
          Issue Type Improvement [ 4 ] Sub-task [ 7 ]
          Kevin Sutter made changes -
          Assignee Michael Dick [ mikedd ]
          Patrick Linskey made changes -
          Field Original Value New Value
          Link This issue blocks OPENJPA-149 [ OPENJPA-149 ]
          Patrick Linskey created issue -

            People

            • Assignee:
              Michael Dick
              Reporter:
              Patrick Linskey
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development