我正在试验Atomikos提供的独立JPA和JTA/XA事务管理。我的简单单元测试保留了3条记录,包装在JTAUserTransaction中。当使用H2作为后备数据库时,测试工作正常。当使用MySQL作为后备数据库时,secondpersist抛出这个异常:com.mysql.jdbc.jdbc2.optional.MysqlXAException:XAER_INVAL:Invalidarguments(orunsupportedcommand)(请参阅下面的完整堆栈跟踪和日志记录)。日志文件提供了更多详细信息:WARNING:XAresource'jdbc/mysqlDs':res
我正在尝试将hibernate实体管理器与mysql和glassfish结合使用。尝试使用JTA数据源时出现以下错误:Causedby:org.hibernate.HibernateException:ThechosentransactionstrategyrequiresaccesstotheJTATransactionManageratorg.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:376)atorg.hibernate.cfg.Configuration.buildSessionFactory(Conf
有人可以很好地解释JTA在现代Java应用程序中的动机和应用吗?我不想要过多的技术细节。但只是一段关于我们为什么需要JTA、JTA完成什么的段落,也许还有一段伪代码展示了如何使用JTA? 最佳答案 通常,应用程序对数据库、JMS等信息资源执行事务操作。由于这些事务彼此完全隔离,因此应用程序可能会在一个资源上提交一个事务,但在另一个资源上提交事务它失败。这将导致这些资源之间的信息不一致,因为一个已提交而另一个未提交。XA是解决此类问题的开放标准。而且,JTA是J2EE世界中XA的名称。希望对您有所帮助。尼汀
我正在尝试使用StatelessSession在OSGi环境(Karaf4.0.7)中进行一些批量插入,但是当我尝试提交我的事务时,我得到了be.ikan.lib.orm.base.exceptions.PersistenceBrokerException:org.hibernate.TransactionException:CannotretrievetheTransactionManagerOSGiservice!atbe.ikan.lib.orm.hibernate.broker.HibernateStatelessPersistenceBrokerImpl.commitTran
我将文件的属性(大小、更新时间……)存储在数据库中。所以问题是如何管理数据库和文件的事务。在JavaEE环境中,JTA只能管理数据库事务。如果更新数据库成功但文件操作失败,我是否应该为此编写文件回滚方法?此外,EJB容器中的文件操作违反了EJB规范。你怎么看? 最佳答案 理想情况下,访问文件系统等外部资源应该通过JCA连接器。虽然有几篇文章讨论了这个问题,但我从未找到一个现成的JCA连接器来对文件系统进行事务访问,所以我开始写一个:查看:JCAconnector:afilesystemadapter.它相当基础,但可以管理文件的提交
我认为这是一个相当普遍的问题:如何将我的业务逻辑放在分布式系统环境中的全局事务中?举个例子,我有一个TaskA包含几个子任务:TaskA{subtask1,subtask2,subtask3...}这些子任务中的每一个都可能在本地机器或远程机器上执行,我希望TaskA通过事务以原子方式(成功或失败)执行。每个子任务都有一个回滚函数,一旦TaskA认为操作失败(因为其中一个子任务失败),它调用每个子任务的回滚函数。否则TaskA提交整个事务。为此,我按照“Audittrial”事务模式为每个子任务做记录,这样TaskA就可以知道子任务的运行结果,然后决定回滚或提交。这听起来很简单,但难的
我有一个带有bean管理事务的无状态bean,以及一个像这样的方法:@Stateless@TransactionManagement(TransactionManagementType.BEAN)publicclass...{@ResourceprivateUserTransactionut;@EJBprivateOtherStatelessBeanLocalother;publicvoidinvokeSomeMethods()ut.begin();...//invokeotherbean'smethodshere.other.method();...ut.commit();}}那么U
我与以下实体类具有双向一对多关系:0或1个客户0个或多个产品订单当持久化客户端实体时,我希望关联的产品订单实体也被持久化(因为它们到“父”客户端的外键可能已更新)。当然,所有必需的CASCADE选项都在客户端设置。但是,如果在引用现有产品订单时第一次持久化新创建的客户端,则它不起作用,如在这种情况下:产品订单“1”已创建并保留。工作正常。已创建客户“2”并将产品订单“1”添加到其产品订单列表中。然后它被坚持。不起作用。我尝试了几个方法,但没有一个显示出预期的结果。请参阅下面的结果。我在这里阅读了所有相关问题,但它们对我没有帮助。我在GlassFish3.1.2上的ApacheDerby
🏆今日学习目标:🍀JTA事务详解✅创作者:林在闪闪发光⏰预计时间:30分钟🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区,欢迎你的加入: 林在闪闪发光的社区目录前言JTA概述两阶段提交JTAAPIJTAAPI分类JTA相关APIJTAAPI详解TransactionManagerTransactionXidXAResourceSynchronizationUserTransactionJTA活动事务交互JTAAtomikos实战AtomikosUserTransaction实战AtomikosTransactionManager实战SpringAtomikos实战SpringB
🏆今日学习目标:🍀JTA事务详解✅创作者:林在闪闪发光⏰预计时间:30分钟🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区,欢迎你的加入: 林在闪闪发光的社区目录前言JTA概述两阶段提交JTAAPIJTAAPI分类JTA相关APIJTAAPI详解TransactionManagerTransactionXidXAResourceSynchronizationUserTransactionJTA活动事务交互JTAAtomikos实战AtomikosUserTransaction实战AtomikosTransactionManager实战SpringAtomikos实战SpringB