import progress.message.jclient.xa.*;
...
// Получение XAResourse
XAQueueConnectionFactory xaqcf = new XAQueueConnectionFactory(url);
XAQueueConnection xaqc = xaqcf.createXAQueueConnection(user, password);
QueueConnection qc = ((XAQueueConnection)xaqc).getQueueConnection();
XAQueueSession xaqs = xaqc.createXAQueueSession();
XAResource xarq = xaqs.getXAResource();
// Открытие сеанса
QueueSession qs = xaqs.getQueueSession();
Queue q = qs.createQueue(«Queue»);
QueueSender sender = qs.createSender(q);
try {
  xarq.start(xid11, XAResource.TMNOFLAGS); // Начало транзакции
  sender.send(msg);
  xarq.end(xid11, XAResource.TMSUCCESS); // Конец транзакции
  xarq.prepare(xid11); // первая фаза, подготовка
  xarq.commit(xid11, false); // вторая фаза, фиксация
}
catch (JMSException e) {
  xarq.rollback(xid11); // Откат в случае ошибки
}

Поделитесь материалом с коллегами и друзьями