2011-08-29 36 views
2

我刚开始学习的Jboss AP6和我有几个问题: 我创建本地的Tx数据源(MySQL数据库),并可以使用JNDI在我的代码访问它。Jboss的AP6事务管理器实现

现在我想在我的Jboss AP中创建一种Transaction Management资源。

1)在Jboss AP6中是否有任何JTA功能?

2)我可以将它应用到我创建的本地数据源吗? 3)你可以请我指出任何解释如何配置它并在我的代码中使用它的文档,还有没有任何文章能够深入讨论这些主题?

我把它搜索了一段时间,但没有找到任何有用的文档。我不想使用Spring/Hibernate开箱即用的解决方案,只是使用Mysql和普通的JTA。

回答

1
  1. JBoss的AP6支持JTA 1.1
  2. 是的,你可以
  3. 如果declareLocalTxDatasource,这意味着,不是每当你从这个数据源 连接就此将参加“当前”的交易。

如果您想自己手动处理事务,例如没有EJB,则必须从JNDI中注入TransactionManager。 示例

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() 
}