code: @AroundInvoke
      public Object mandatory(final InvocationContext context) throws Exception {
  
          if (getUOWM().getUOWType() != UOWSynchronizationRegistry.UOW_TYPE_GLOBAL_TRANSACTION) {
              throw new TransactionalException("global tx required", new TransactionRequiredException());
          }
  
          return runUnderUOWManagingEnablement(UOWSynchronizationRegistry.UOW_TYPE_GLOBAL_TRANSACTION, true, context, "MANDATORY");
      }
docs: <p>If called outside a transaction context, a TransactionalException with a
  nested TransactionRequiredException must be thrown.</p>
  <p>If called inside a transaction context, managed bean method execution will
  then continue under that context.</p>