Реализация диспетчера транзакций Jboss AP6

Я только начинаю изучать Jboss AP6, и у меня есть несколько вопросов: я создал локальный источник данных Tx (база данных MySql) и могу получить к нему доступ в своем коде с помощью JNDI.

Теперь я хотел бы создать ресурс управления транзакциями внутри моей точки доступа Jboss.

1) Есть ли встроенная функция JTA в Jboss AP6?

2) Могу ли я применить его к моему локальному источнику данных, который я создал?

3) Не могли бы вы указать мне какую-либо документацию, в которой объясняется, как ее настроить и использовать в моем коде, или есть ли какая-либо статья, в которой подробно рассматриваются эти темы?

Я гуглил его в течение некоторого периода времени, но не нашел никакой полезной документации. Я не хочу использовать готовое решение Spring/Hibernate, только Mysql и простой JTA.


person danny.lesnik    schedule 29.08.2011    source источник


Ответы (1)


  1. JBoss AP6 поддерживает JTA 1.1
  2. Да, ты можешь
  3. Если вы объявляете LocalTxDatasource, это означает, что всякий раз, когда вы получаете соединение из этого источника данных, это соединение будет участвовать в «текущей» транзакции.

Если вы хотите самостоятельно управлять транзакцией, например, без EJB, вы должны внедрить TransactionManager из JNDI. Пример

TransactionManager tm = (TransactionManager)context.lookup("java:/TransactionManager");
tm.begin();
try{
  DataSource ds = context.lookup("java:/testDS");
  connection = ds.getConnection()
  //do useful work
  connection.close();
  tm.commit();
}catch(Exception e){
  tm.rollback()
}
person Alex Guzanov    schedule 12.01.2012