【JAVA事务】教程文章相关的互联网学习教程文章

java – 当事务只读取数据时,我应该避免使用注释@Transactional吗?【代码】

我已经从使用TransactionProxyFactoryBean的旧式事务管理迁移到Spring推荐的Declarative事务管理,以避免出现不时出现的事务的异常. 对于事务保存更新删除我添加了注释: @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) 它对我有用. 问题是:Should I avoid using the annotation @Transactional when the transaction only reads data?例:public TradeData getTrade(long tradeId) throws Ex...

java – 如何获取Spring事务管理器实例?【代码】

我使用注释来标记应该在事务中执行的方法. 但是,在一个地方我需要手动执行transactionManager.rollback(),而不需要注释.如何获取transactionManager对象?解决方法:如果要回滚当前事务,可以使用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();请注意,它不会立即回滚事务 – 它设置“仅回滚”状态,因此在尝试提交期间将回滚事务. 否则,如果您需要程序化事务解除,则可以使用TransactionTemplate,如10.6 Pro...

java – 春天的PROPAGATION_REQUIRED事务属性?【代码】

在http://www.vermatech.com/code/SpringTransactionExamples.html给出的第一个案例研究中,程序正在调用两种方法,即testModel.deleteAllCountries(); testModel.initializeCountries();其中initializeCountries抛出运行时异常.对于这两种方法,事务定义属性为PROPAGATION_REQUIRED.仍在deleteAllCountries下进行交易方法得到提交但是initializeCountries下的事务被回滚(根据同一案例研究中给出的日志). 根据PROPAGATION_REQUIRED定义...

java – 我正确实现ActiveMQ吗?实现事务处理会话并重试【代码】

我正在尝试使用事务会话来支持回滚的JMS-ActiveMQ实现.我是ActiveMQ的新手,我已经使用它的Java库进行了第一次实现. 当我运行我的应用程序时,我看到消息已成功入队并出列.我还可以看到相应的DLQ是自动生成的.但是,我不确定我是否正确配置了redeliverypolicy.截至目前它已在生产者上配置,但有些examples将重新传递策略与监听器容器联系起来,所以我不能完全确定在我的情况下(如果有的话)是否会将有毒消息放在DLQ上.摘要中包含详细注释...

java – 如何在服务层中进行事务【代码】

我的项目中有一个DAO层.这是我的UsersDao接口,它的实现UsersDaoImplpublic interface UsersDao { public Users insert(Users object); }public class UsersDaoImpl implements UsersDao {@Overridepublic Users insert(Users object) {String sqlQuery = null;PreparedStatement stmt = null;try (Connection connection = DbConnector.getConnection()) {sqlQuery = "INSERT INTO `users`(login, password,passwordSalt, nam...

java – 在Spring中,如何标记事务信息?【代码】

我需要以某种方式标记交易.需要一些方法,如:TransactionAspectSupport.setData(someObject);然后,直到事务处于活动状态,我希望能够读取这些数据. 我需要它在Aspect类中检查当前事务的某些操作是否已经进行. 编辑:说明我的意思.我们有两节课. 服务类:class Service {@Transactional public void serviceA(){// do somethingserviceB(); }@Transactional public void serviceB(){// do something } }Aspect类:@Aspect class Serv...

java – 如何在Jetty JNDI Atomikos配置上设置事务超时【代码】

我正在将各种Spring bean转换为JNDI查找.目前我正在使用Jetty来测试它.我根据Jetty文档配置了UserTransaction,它可以工作:<New id="tx" class="org.mortbay.jetty.plus.naming.Transaction"><Arg><New class="com.atomikos.icatch.jta.UserTransactionImp"></New></Arg> </New>这个配置的问题是它不像我的Spring配置那样设置事务超时:<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"><!...

java – 财务应用程序中的事务隔离级别

我正在阅读有关事务隔离级别(可序列化,可重复读取,读取已提交,未提交读取)的内容,并且对它们各自的用途感到有点困惑.我是否理解这是正确的,例如在银行应用程序(汇款等)中,所使用的隔离级别可能是可序列化的,因为不允许放宽此规则?解决方法:您可以根据应用程序的工作方式选择隔离级别.对于不同的数据库调用,您可能需要不同的隔离级别,具体取决于您对数据执行的操作. 对于任何特定行业(如银行业务)都没有严格的规则,但是一些数据(例...

Java EE / EJB vs Spring用于具有多个DB群集的分布式事务管理

我需要生成一个原型(在与J2EE兼容的J2EE应用程序服务器中运行),演示如下 >展示在全球不同站点的多个数据库上分发事务的能力(应用程序托管数据复制)>展示从多个位置的多个数据库集群中选择将事务写入数据库的能力.选择要写入的数据库取决于用户位置. (数据库管理数据复制) 我可以选择Spring堆栈或Java EE堆栈(EJB等).了解您对哪个堆栈更好地支持多个数据库集群上的分布式事务更有用. 如果可能的话,您是否也可以请您指出您认为如何使...

java – 在MessageDrivenBean中将事务标记为仅回滚,而不重试该消息【代码】

我有以下MessageDrivenBean:@MessageDriven(mappedName = "jms/...", activationConfig = {@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),@ActivationConfigProperty(propertyName = "endpointExceptionRedeliveryAttempts", propertyValue = "5"),@ActivationConfigProperty(propertyName = "endpointExceptionRedeliveryInterval", propertyValue = "1000") }) public clas...

java – 使用JPA的Spring事务在AfterCompletion阶段抛出异常【代码】

我有一个使用Spring Framework(3.1)的Web应用程序和通过Hibernate(4.1.1)备份的JPA(2.0)持久化 Hibernate Search也启用了(4.1 RC). Hibernate的二级缓存是Infinispan(5.1.3). 我还使用Infinispan作为Lucene(3.5)目录提供程序(用于Hibernate搜索). 一切都在XA事务上运行,Bitronix(2.1.2)作为JTA管理器. 我有使用@Transactional注释的方法.当方法结束并且事务提交时,会发生以下异常:21:08:54,784 WARN BitronixTransaction:499 - S...

java – 用于处理多个数据源的Spring事务管理【代码】

这可能是一个重复的问题,但我找不到(至少我无法理解)一个满意的答案,因此再次提问. 我正在使用两个数据源(MySQL和Oracle).以下是执行流程:主方法-A调用方法-B(写入Oracle DB)然后它(方法-A)调用方法-C(写入mySQL DB)然后它(方法-A)调用方法-D(写入Oracle DB) ). 如果在任何地方发生故障,一切都应该回滚.目前只有Oracle DB中的更改才会被回滚. mySQL DB没有回滚. 我已经定义了两个事务管理器.=========> First <=========<tx:annot...

java – Spring Batch Transaction Exception:在JobRepository中检测到的现有事务【代码】

我正在尝试这个并得到例外: java.lang.IllegalStateException:在JobRepository中检测到的现有事务.请修复此问题并重试(例如,从客户端删除@Transactional注释). 有人遇到过这个问题吗?@Transactional(propagation = Propagation.REQUIRED) public void method1() // this method must be Transactional {... /*code to call JMS services*/method2(); }@Transactional(propagation = Propagation.NOT_SUPPORTED) public void...

java – Spring中的事务错误【代码】

我有一个项目https://github.com/ivartanian/onlinecontrol 在Spring MVC JPA中,最初通过XML使用Spring配置.现在我试图通过JAVA Config(没有XML)设置项目.项目启动,但是当我创建新用户(实体用户)时,出现错误事务.但是,如果我创建另一个实体,则不会发生此错误.如果不发生此XML配置错误. 请告诉我错误的原因.我会很高兴有任何帮助 我的XML配置是:<context:component-scanbase-package="com.vizaco.onlinecontrol.service"/><!-- ena...

java – 抛出异常后回滚事务【代码】

当我在服务方法中抛出异常时,我预计服务上的事务注释将回滚保存操作,但它不起作用. 这是我的服务:@Service@Transactional(value = "transactionManager", rollbackFor = Exception.class)public class OrderServiceImp implements OrderService {@Autowiredprivate OrderRepository orderRepository;@Overridepublic void doSomeStaff(Long orderId) {Order order = orderRepository.findOne(orderId);orderRepository.save(order...