Внедрение Jboss AP6 Transaction Manager - PullRequest
2 голосов
/ 30 августа 2011

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

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

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

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

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

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

1 Ответ

1 голос
/ 12 января 2012
  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()
}
...