// Mark the transaction to be rolled back bby timeout
performTimeoutRollback = true;
// schedule a time out task if the timeout was specified
if (timeoutMillis > 0) {
// take care of the transaction timeout
TimerFactory timerFactory = Monitor.getMonitor().getTimerFactory();
Timer timer = timerFactory.getCancellationTimer();
timeoutTask = new CancelXATransactionTask(this);
timer.schedule(timeoutTask, timeoutMillis);
} else {
timeoutTask = null;
}