1 Reply Latest reply on Nov 1, 2009 8:20 AM by Sandeep Vaid

    CMT setRollbackOnly(), RollabackException

    Sandeep Vaid Newbie


      [P-189] of EJB3 In Action: "In case of transactions propagated from the client, if our method indicates that the transaction should be rolled back, the container
      will not only roll back the whole transaction but will also throw a javax.transaction.RollbackException back to the client."

      I tested this scenario, the container is not throwing RollbackException.Moreover nothing of this sort is written in EJB3 specs.

        • 1. Re: CMT setRollbackOnly(), RollabackException
          Sandeep Vaid Newbie

          Sorry, i don;t know how to edit my post.. So posting updated question again :

          [P-189] of EJB3 In Action: "In case of transactions propagated from the client, if our method indicates that the transaction should be rolled back, the container
          will not only roll back the whole transaction but will also throw a javax.transaction.RollbackException back to the client."

          a) I tested this scenario, the container is not throwing RollbackException.Moreover nothing of this sort is written in EJB3 specs.
          b) When will contianer rollback the transaction?? Here 2 cases can occur:
          case i) When this method is NOT called from transactional client.. In this case the container mark the transaction to be rolledback (at the
          statement where exception occurs) and will actully rollback transaction at method end.
          case ii) When this method is called from transactional client. Suppose a BMT started a UserTransaction and called a CMT method,
          In this case this CMT method will join the callers transaction. Now will the container simply marks the transaction to be rolledback and
          the BMT method should check this flag and then only either rollback or commit the transaction ??