Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-12998

[GSS](7.1.0) UserTransaction should be lazy to allow node selection (loadbalancing) even if the invocations stick to one node


      It should be possible to lookup a UserTransaction from a node or a cluster and call .begin() with starting the Transaction lazy until the first EJB invocation.
      The invocation will implicit begin the transaction and all invocation are sticky to that node.
      This is to spread the load across several server instances if there is no running transaction but keep the transaction sticky to the first selected node.
      It prevents from a strong affinity to one instance via URI affinity or the necessity to define the node for the UserTransaction upfront.

      The sticiness is because of issues with persistence like JPA as here the server is not really 'stateless' as the session of EntityManager can decide to not flush the changed data to the underlying database which can cause issues if the transaction will continued on a different instance if the client invoke EJB's multiple times.

            dlloyd@redhat.com David Lloyd
            rhn-support-bmaxwell Brad Maxwell
            0 Vote for this issue
            10 Start watching this issue