Tag: atomikos

Atomikos vs. Bitronix vs. JBossTS – MVCC和嵌套事务

我想实现前一个事务管理器。 但是,由于我还处于概念阶段,我想尝试所有这些事务管理器。 我最后选择的标准是易用性, Tomcat的使用,适应性以及嵌套事务和MVCC的大部分支持。 我无法找到有关Bitronix和Atomikos后一种标准的可能支持的任何信息。 我知道JBossTS支持MVCC和NT – 但我不确定JBoss是否是JBoss使用带来的巨大开销的一个很好的选择…特别是关于Spring和hibernate的用户。 你知道Atomikos和/或Bitronix是否适合我的标准 – 或者实现我自己的TM会更好吗?

javax.jms.ConnectionFactory和javax.jms.XAConnectionFactory之间的差异

我正在进入JTA的世界,由于需要分布式事务,我不确定javax.jms.ConnectionFactory和javax.jms.XAConnectionFactory之间的区别,或者更准确地说, javax.jms.ConnectionFactory执行的方式如何?我所期望的只有javax.jms.XAConnectionFactory才能为我做。 细节:我使用Atomikos essentials作为我的事务管理器,我的应用程序在Apache Tomcat 6上运行。 我正在运行一个带有虚拟应用程序的小型POC,我将JMS提供程序( OpenMQ )注册为JNDI资源。 奇怪的是,在我的代码中我这样做: Context ctx = new InitialContext(); ConnectionFactory queueConnectionFactory = (ConnectionFactory)ctx.lookup(“java:comp/env/jms/myQueueFactory”); javax.jms.Connection connection = queueConnectionFactory.createConnection(); Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); 稍后在代码中,我在UserTransaction使用此会话,并且它使用Commit或Rollback两个MessageProducer完美地执行。 我不明白的是,我是如何使用javax.jms.XAConnectionFactory.createConnection()方法的,我得到了一个能完成工作的Session ? 什么是javax.jms.XAConnectionFactory角色? 我还要补充一点,我已经查看了两个类(和javax.jms.BasicConnectionFactory )的源代码,并且我validation了XA类没有覆盖createConnection 。

Java:许multithreading中的XA事务传播

如何在Java SE(非Java EE或Spring)中使用事务管理器(如Bitronix , JBoss TS或Atomikos )来支持以下用例: 我们假设我们有以下类: public class Dao { public void updateDatabase(DB db) { connet to db run a sql } } 我们从中创建一个Java Runnable,如下所示: public class MyRunnable extends Runnable { Dao dao; DB db; public MyRunnable(Dao dao, DB db) { this.dao=dao; this.db = db; } public run() throws Exception { return dao.updateDatabase(db); […]