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

Remote client transaction timeout values are overwrote by hardcoded values

XMLWordPrintable

    The EJB3 interceptor is not using client values for timeouts, this is a problem for users trying to use EJB for transaction propagation.

    Refer to the code in https://github.com/wildfly/wildfly/blob/master/ejb3/src/main/java/org/jboss/as/ejb3/remote/EJBRemoteTransactionPropagatingInterceptor.java:
    private void createOrResumeXidTransaction(final XidTransactionID xidTransactionID) throws Exception {
    final TransactionManager transactionManager = this.ejbRemoteTransactionsRepository.getTransactionManager();
    final Transaction alreadyCreatedTx = this.ejbRemoteTransactionsRepository.getImportedTransaction(xidTransactionID);
    if (alreadyCreatedTx != null)

    { // resume the already created tx transactionManager.resume(alreadyCreatedTx); }

    else

    { // begin a new tx and add it to the tx repository // TODO: Fix the tx timeout (which currently is passed as 300 seconds) final Transaction newSubOrdinateTx = this.ejbRemoteTransactionsRepository.importTransaction(xidTransactionID, 300); // associate this tx with the thread transactionManager.resume(newSubOrdinateTx); }

    }

            dlloyd@redhat.com David Lloyd
            rhn-support-jolee Johnathon Lee
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: