code: public void completeTxTimeout() throws TransactionRolledbackException
      {
          final boolean traceOn = TraceComponent.isAnyTracingEnabled();
  
          if (traceOn && tc.isEntryEnabled())
              Tr.entry(tc, "completeTxTimeout");
  
          if (tx != null && tx.isTimedOut())
          {
              if (traceOn && tc.isEventEnabled())
                  Tr.event(tc, "Transaction has timed out. The transaction will be rolled back now");
              Tr.info(tc, "WTRN0041_TXN_ROLLED_BACK", tx.getTranName());
              ((EmbeddableTransactionImpl) tx).rollbackResources();
  
              final TransactionRolledbackException rbe = new TransactionRolledbackException("Transaction is ended due to timeout");
  
              FFDCFilter.processException(rbe, "com.ibm.tx.jta.embeddable.impl.EmbeddableTranManagerImpl.completeTxTimeout", "100", this);
              if (traceOn && tc.isEntryEnabled())
                  Tr.exit(tc, "completeTxTimeout", rbe);
              throw rbe;
          }
  
          if (traceOn && tc.isEntryEnabled())
              Tr.exit(tc, "completeTxTimeout");
      }
docs: Complete processing of passive transaction timeout.