Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-11450

Cannot get delegate of JMSContext during an beforeCompletion synch

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Minor
    • None
    • 14.0.1.Final, 8.0.0.CR1
    • CDI / Weld
    • None

    Description

      The TransactionContext registers a TransactionScopeCleanup Synchronization with the active transaction. This prevents a TransactionContext to be opened from another beforeCompletion Synchronization, if the transacted JMSContext was not interacted with earlier in the transaction. (Because the synchronization cannot be placed)

      Use case
      I have a JPA post insert lifecycle listener that needs to publish an event. I'd like this to happen within the same XA transaction. The lifecycle listener is handled in during the pre-commit flush, itself invoked through another beforeCompletion transaction Synchronization.

      Workaround
      Flush the EntityManager and don't leave the flushing up to the beforeCompletion synchronization.

      The issue seems also described in the following Stack Overflow issue: https://stackoverflow.com/questions/21523534/jboss-wildfly-arjuna016082-synchronizations-are-not-allowed-when-sending-mess
      (Which refers to WildFly 8.0.0.CR1)

      Back in the day, it seemed smarlow@redhat.com suggested that an interposed synchronization should be registered with the TransactionSynchronizationRegistry instead.

      See the attached log for a full stack trace.

      Attachments

        Activity

          People

            manovotn Matěj Novotný
            jan-willem-1 Jan-Willem Gmelig Meyling (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: