*/
synchronized void scheduleTimeoutTask(long timeoutMillis) {
// schedule a time out task if the timeout was specified
if (timeoutMillis > 0) {
// take care of the transaction timeout
TimerTask cancelTask = new CancelXATransactionTask();
TimerFactory timerFactory = Monitor.getMonitor().getTimerFactory();
Timer timer = timerFactory.getCancellationTimer();
timer.schedule(cancelTask, timeoutMillis);
} else {
timeoutTask = null;