jjzjj

rollback

全部标签

java - ActiveMQ : dead letter queue keeps my messages order

我使用ActiveMQ作为代理来传递消息。这些消息旨在写入数据库中。有时,数据库无法访问或已关闭。在这种情况下,我想回滚我的消息以便稍后重试此消息,并且我想继续阅读其他消息。这段代码工作正常,除了一点:回滚消息阻止我阅读其他代码:privateConnectiongetConnection()throwsJMSException{RedeliveryPolicyredeliveryPolicy=newRedeliveryPolicy();redeliveryPolicy.setMaximumRedeliveries(3);//willretry3timestodequeuerollba

java - 无法让@Rollback 为我的 Spring JPA 集成测试工作

这是我的一个小测试类。问题是它不会在每次测试运行后回滚事务。我做错了什么?:)@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"/META-INF/catalog-spring.xml"})@TransactionConfiguration(transactionManager="transactionManager",defaultRollback=true)publicclassTermTest{@AutowiredprivateCatalogServiceservice;@Rollba

java - Spring @Transactional 注解属性优先/继承

在REQUIRED传播的情况下,当调用方方法本身是事务性的时,如果它们不同,当前方法是否会覆盖封闭的事务属性(例如rollbackFor)?插图:ClassA{@Transactional(propagation=Propagation.REQUIRED,rollbackFor={SomeException.class})voidfoo(){try{b.bar();}catch(OtherExceptione){//isthetransactionmarkedasrollback-onlyatthispoint?}}}ClassB{@Transactional(propagation=

java - JPA事务回滚重试和恢复: merging entity with auto-incremented @Version

我想在交易失败后恢复。现在,当然,在任何回滚之后,所有实体都会分离并且实体管理器会关闭。但是,UI仍然保留分离的实体。显然我们不能就这样丢弃用户的更改,所以我们想让他们重试(修复突出显示的验证错误,然后再次单击按钮)。在JavaPersistenceWikiBook之后,OnemethodoferrorhandlingistocallmergeforeachmanagedobjectafterthecommitfailsintoanewEntityManager,thentrytocommitthenewEntityManager.Oneissuemaybethatanyidsthat

java - 如果不回滚 Hibernate 中的事务会发生什么?

我读到的关于Hibernate的所有内容都指出,当发生错误时,您必须回滚事务并关闭session,并且以下代码(取自Hibernate的文档)通常有一些变体作为示例:Sessionsess=factory.openSession();Transactiontx=null;try{tx=sess.beginTransaction();//dosomework...tx.commit();}catch(RuntimeExceptione){if(tx!=null)tx.rollback();throwe;//ordisplayerrormessage}finally{sess.close(

java - JDBC:是否仅当调用 commit() 方法不成功时,调用 rollback() 方法才有效?

我是JavaJDBC新手,开发了一个小型数据库应用程序。我正在学习O'Reilly-DatabaseProgrammingwithJDBCandJava2ndEdition。con.rollback()只有在con.commit不成功时才会生效吗?我预计即使con.commit()成功调用con.rollback()也会产生效果。换句话说,将其用作“撤消”操作。我尝试在con.commit()成功后调用con.rollback(),但它没有按预期工作。那么好/预料之中吗?这个例子来self上面提到的那本书:对con.rollback()的调用被注释掉了。在con.close()之前接近

java - 事务不回滚

我调用了两个方法,第一个更新表,下一个在另一个表中插入记录。当第二个事务失败时,EJB没有执行第一个事务的回滚。这是我的支持bean:@ManagedBean@ViewScopedpublicclassTransactionTestBeanimplementsSerializable{@EJBprivateTransactionTestServiceservice;publicStringloadView(){return"/test/transactionTest";}publicvoidtest(){try{service.updateTest();}catch(Exception

java - 如何使多个 REST 请求成为事务性/原子性的?

我有以下情况。我有一个REST客户端,它充当其他3个REST客户端的外观。(我正在用Java编程,使用SpringBoot)客户端的职责之一包括对用户进行CRUD操作。现在,公开自己的RESTAPI的所有其他3个系统都有某种用户管理。例如,当我收到创建用户的请求时,我必须通过它们的RESTAPI在这3个系统上创建它们并保存在我的数据库中。现在,在最好的情况下,我只需调用他们的API,将用户插入我的数据库,一切都很好。但是,请考虑仅在1个外部服务上成功创建用户的场景。我是否对所有其他人重试该操作?我是否尝试删除成功的用户?正确的做法是什么? 最佳答案

java - Spring 数据 : rollback transaction on retry

有一个实体:@EntityclassA{...@Versionintversion;}A以乐观方式实现的实例更新:@Transactional(rollbackFor={StaleStateException.class})@Retryable(value={StaleStateException.class})publicvoidupdateA(){Aa=findA();Bb=newB();//Update"a"somehowa.update();//"b"issavedoneachretry!save(b);}正如评论中所述,当StaleStateException发生时,事务似乎

java - 使用 Spring JDBC 的简单交易?

我正在开发一个使用Spring的Java应用程序IoC和JDBC模板类。我有一个DAO类,它有4个方法:m1()到m4()。m1在表t1上执行多次插入和更新,m2在表t2上执行,m3在t3上执行,等等。DAO方法使用如下:while(true){//process&generatedatadao.m1(data1);dao.m2(data2);dao.m3(data3);dao.m4(data4);//sleep}我希望4个连续方法调用下的数据库操作是原子的,要么所有4个表都更新成功,要么一个都不更新。因此,如果在m3()中执行操作时出现错误,我想回滚在m2和m1中执行的所有更改(更新