草庐IT

MySQL事务

全部标签

java - spring batch 在作业存储库和实际任务之间使用不同的事务管理器

我使用SpringBatch使用2个(可能更多,为简单起见假设2个)数据库。一个用于存储所有作业数据(所有BATCH_*表)。另一个用于实际运行我的业务逻辑数据。有些事情我不太明白。当我声明我的JobRepository时,我已经指定了我的TransactionManager,为什么我必须在我的tasklet上再做一次?(我不是故意使用默认名称的)我目前正在为tasklet提供与我的JobRepository相同的TrasactionManager,它管理与我在步骤中所做的不同的连接。这是否意味着我在作者或读者内部进行了自己的事务管理?如果#2为真,HowdoesSpringBatch

java - JBOSS:使用 Atomikos 在 Oracle XA 事务上卡住线程

当我打算使用atomikos和hibernate传输一些数据时,我的应用程序一段时间后出现错误。2015-11-0607:11:56,353WARN[http-/0.0.0.0:8083-10]datasource.xa.XAResourceTransaction-XAresource'COTXADBMS':resumeforXID'31302E3235332E312E35322E746D30303030313030303939:31302E3235332E312E35322E746D31'raised-7:theXAresourcehasbecomeunavailable-(Slf4

java - 在 JUnit 测试中使用事务注释时数据未保存在数据库中

同事们,我一个多星期都解决不了一个Spring事务的问题。我已经创建了非常相似的帖子(Whydatawasn'tsavedwhenIuse@Transactionalannotation?),但无法解决其中的问题;当然,我考虑了给@FlorianSchaetz的建议。我恳请你帮助我。所以,我有测试类:@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes=AppConfig.class,loader=AnnotationConfigContextLoader.class)@Transactionalpub

java - Spring 事务不工作 + JAX WS + JDBC

我对这个问题有点生气。让我们检查是否有人实现了类似的东西。我有一个实现了8WS的Java8Web应用程序。其中一些WS,通过JDBCTemplate进行插入和更新(由于性能需要,Hibernate不是一个选择),如果执行崩溃并出现异常,我需要它们回滚。我在spring应用程序上下文文件(Tomcat的server.xml/context.xml中的jndi资源)中有以下数据源和事务管理器配置:另一方面,我有一个到数据库DBcontroller.class的唯一访问点,它有一个用于插入、删除和更新的通用方法:privateNamedParameterJdbcTemplatejdbcTem

java - 无法获取 logback 和 mysql 连接

我像这样使用logback和mysql:com.mysql.jdbc.Driver${jdbc.url}${jdbc.username}${jdbc.password}但是我得到:11:51:45,851|-WARNinch.qos.logback.core.db.DataSourceConnectionSource@4c1be833-Couldnotgetaconnectiontodiscoverthedialecttouse.java.sql.SQLException:Connectionscouldnotbeacquiredfromtheunderlyingdatabase!at

java - XA/JTA 事务 : JMS message arrives before DB changes are visible

上下文是:生产者(JTA事务PT)正在向JMS队列发送消息并进行数据库更新;consumer(JTAtransactionCT)在同一个队列上监听并在收到消息时读取DB;应用服务器-WebLogic,数据库-Oracle。我观察到,有时CT(还?)无法看到PT的数据库更改,如果已收到相应的JMS消息(PTpromise了吗?)。似乎JTA不能保证这种一致性(这在JurgenHoller的演讲“TransactionChoicesforPerformance”中也得到了证实)。避免此类问题的最佳方法是什么(明显的除外-不使用JTA)?谢谢。 最佳答案

java - 服务层和 DAO 层中的 Spring 事务

在我的示例中,我有一个Hibernate实体和一个DAO。@Entity@Table(name="myEntity")publicclassMyEntity{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="id")privatelongid;@Column(name="action")privateStringactionName;}...................@Repository("myDAO")@Transactional(propagation=Propagation.REQUIRED

java - EJB/JPA 事务边界

我在读EJBTransactionboundaryandTransactionboundary让我们专注于RequiresNewAttribute.这是链接中的修改图所以说method-B用RequiredNewattribute注释.所以根据理论当method-A电话method-B一个新的事务将开始,已经开始的事务将被暂停,当method-B返回新事务将被提交。现在考虑在S1部分我们使用entitymanager.persist()创建一个jpa实体现在我们将此实体传递给method-B其中设置了name实体的领域。现在当我们从method-B返回时怎么可能commitdb中的事务

java - 悲观锁与可序列化事务隔离级别

我有点理解实体锁定和事务隔离级别的用途,但无法区分悲观锁定和可序列化级别。据我了解,在这两种情况下,表都被锁定并且没有其他事务可以访问它,因此在这两种情况下,数据库都会采取防止并发修改的措施,这看起来没有区别。有人可以解释一下这里是否真的有区别吗? 最佳答案 (我不假设您使用的是ObjectDB。如果您编辑您的问题并包括您在JPA中使用的特定数据库,您可能会得到更好的答案。)我不喜欢乐观锁定和悲观锁定这两个术语。我认为乐观并发控制和悲观并发控制更准确。锁是处理并发控制问题最常用的方法,但不是唯一的方法。(Date在数据库系统简介中关

java - 从关闭文件方法抛出 IOException 时如何管理事务(包括文件 IO)

我最近开始使用Spring的数据源事务管理器。我现在有问题。我的事务包括对数据库表的更新和对文件的写操作。它工作正常,但我对文件I/O有一些疑问。正如您在下面看到的,我已经将我的bean的openFile和closeFile方法分别配置为init方法和destroy方法,这反过来又提供了这些方法,就像构造函数和析构函数一样被调用。如果文件没有正确关闭,一些记录可能没有成功写入output.txt文件,这意味着我也无法正确处理事务管理。但是,我想回滚那些尚未附加到平面文件的数据库更新。使用我的解决方案,似乎不可能将fileClose方法添加到事务中。有谁知道如何正确执行此所需操作?如有任