Uploaded image for project: 'EJB Client Library (AS7+)'
  1. EJB Client Library (AS7+)
  2. EJBCLIENT-141

Retry needs to be disabled when making remote invocations from a managed transaction context

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Major
    • None
    • 2.1.1.Final
    • None

    Description

      When EJBClient invocations are made from a managed transaction context, the TransactionInterceptor creates XAResources to represent the servers to which the invocations will be sent. These XAResources are used to allow the client TransactionManager to send commit / rollback messages to the participants in the transaction based on the commit / rollback decision of the client transaction manager.

      If an invocation is sent to a destination server (managed transaction context or not) and the EJBComponent is not available, a NoSuchEJBException will be returned to the client. This will automatically trigger a retry of the invocation on another available node. Note that this happens before the invocation returns to the caller - it is, in effect, transparent to the caller.

      Such a retry in the context of a managed transaction context is not allowed, as there is not server side transaction context available on the node to which the retry is sent (i.e. server side transaction context for transactions is not replicated around the cluster).

      Thus, for transactions in a managed context, retry must be disabled.

      Attachments

        Issue Links

          Activity

            People

              rachmato@redhat.com Richard Achmatowicz
              rachmato@redhat.com Richard Achmatowicz
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: