Tag: jta

Spring + Hibernate + DB2 + JTA + XA应用程序中的死锁

应用程序日志中的exception: 12:04:18,503 INFO ExceptionResolver:30 – [ org.springframework.dao.DeadlockLoserDataAccessException ] Hibernate flushing: could not update: [sero.chase.integration.Beans.Bean#1000]; SQL [update SCHM.v***240u_bean set prop1=?, prop2=?, prop3=?, prop4=?, prop5=?, prop6=?, prop7=?, prop8=?, prop9=?, prop10=?, prop11=?, prop12=?, prop13=?, prop14=?, prop15=?, prop16=?, prop17=?, prop18=?, prop19=?, prop20=?, prop21=?, where bean_id=?]; UNSUCCESSFUL EXECUTION CAUSED BY DEADLOCK OR TIMEOUT. REASON CODE 00C90088, TYPE OF RESOURCE 00000302, […]

为什么在JpaTransactionManager中使用jpadialect

我正在从Spring in Action学习spring 3.0。 在那里,它讨论了在JpaTranactionManager中使用jpadialect的重要性 然而,方言已经通过jpaVendorAdaptor在entityManagerFactory的声明中出现。 在JpaTranactionManager中使用方言是多余的吗?

NamingException:jta.UserTransaction

我有一个直接使用Java Transaction API资源的hibernate应用程序。 我正在尝试使用UserTransaction来完成一些基本的数据库事务 UserTransaction接口定义允许应用程序显式管理事务边界的方法 在hibernate.cfg.xml文件中,我有以下属性: true java:comp/env/myDataSource java:comp/UserTransaction org.hibernate.transaction.JTATransactionFactory 在应用程序的web.xml中,UserTransaction在 Object factory for MyBean instances. UserTransaction javax.transaction.UserTransaction 在代码中,我尝试使用InitialContext以其JNDI名称查找UserTransaction public UserTransaction getTransactionContext() throws Exception { if (this.ut == null) { ut = (UserTransaction)new InitialContext().lookup(“java:comp/UserTransaction”); } return ut; } 但是返回以下exception: 03:27:37,530 ERROR [someServlet:555] Error in someMethod javax.naming.NamingException: Cannot create resource instance at org.apache.naming.factory.ResourceEnvFactory.getObjectInstance(ResourceEnvFactory.java:117) at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321) at […]

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 。

Wildfly 8.0.0.Final JTA交易问题

由于我们在事务中使用了大量的@ApplicationScoped bean,但我们不想使用EJB(ApplicationScoped bean不能与无状态bean一起使用),我们创建自己的事务拦截器,例如: @Resource UserTransaction tx; @Resource(mappedName=”java:jboss/TransactionSynchronizationRegistry”) TransactionSynchronizationRegistry tsr; @AroundInvoke public Object manageTransaction(InvocationContext context) throws Exception { Object result; if (Status.STATUS_NO_TRANSACTION == tsr.getTransactionStatus()) { tx.begin(); // System.out.println(“Starting transaction”); result = context.proceed(); tx.commit(); } else { result = context.proceed(); } // System.out.println(“Committing transaction”); return result; } 但是,在JTA事务的情况下,我们遇到如下错误: 使用自己的TransactionInterceptor导致 引发者:java.sql.SQLException:java.sql.SQLException:XAER_RMFAIL:当全局事务处于IDLE状态时,无法执行命令 我们曾经使用Seam3托管交易,它似乎工作正常。 但它不再适用于Wildfly。 我们尝试了Deltaspike的jpa模块,但是即使我们遵循他们的指令,它似乎也存在围绕多个数据源的事务问题(非JTA似乎很好)。 我们还尝试了@Applicationscoped @TransactionalManagement,但它没有给我们交易。 我有什么选择使用Wildfly而不是@Stateful或@Statelss @Singleton等?

例外:必须从Java代理开始才能使用InstrumentationLoadTimeWeaver。 请参阅Spring文档

我试图执行测试时遇到exception请帮忙。 先感谢您 我正在使用 : Java 7,EclipseLink 2.5.0-SNAPSHOT,Spring 3.2.4 测试配置文件 : exception跟踪 : java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext(CacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:122) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:312) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:211) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:288) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:284) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) […]

模拟长时间运行的Oracle DB查询

什么是最简单的(最好没有任何新的表创建)运行数据库查询的方式,这需要在Oracle DB中花费很长时间(至少几分钟)?

什么是全球交易?

JSR 907 JTA 1.2定义了“全局事务”术语: UserTransaction.begin方法启动全局事务并将事务与调用线程相关联。 那是什么意思? 这是最外面的交易还是什么?

容器管理事务无法回滚

我正在玩交易。 我配置JPA来处理我的实体,并希望将它们保存在数据库中。 问题是,当我的程序抛出runtimeException时,CMT不会回滚。 这个“容器事物”背后的想法很难理解,而且记录很少。 @transactional托管事务,纯CDI Interceptor托管事务和Bean管理事务就像一个魅力。 这是我编码的内容:这是一个简单的“电影演示”。 你想看两部带X座位的电影。 座位有限。 如果电影中的座位不足,则不应该有交易(ACID和东西) 在我的buyTicketsBoundary类: 起初我告诉我的class级我们正在使用CMT: @Named(“buchungBoundry”) @RequestScoped @TransactionManagement(TransactionManagementType.CONTAINER) public class BuchungBoundry { @EJB private BuchungVerwaltung buyTicketsController; @EJB private KundenVerwaltung customerController; @EJB private SaalVerwaltung roomController; @EJB private MovieVerwaltung movieController; private int ticketsForMovie1; //this is how many tickets we want to buy private int ticketsForMovie2; public BuchungBoundry() { } @TransactionAttribute(TransactionAttributeType.REQUIRED) […]

OpenJPA – 交易管理不可用……(Fuse ESB)

我在Fuse ESB中使用JPA的RESOURCE_LOCAL事务类型时遇到问题。 我也不完全了解JTA或RESOURCE_LOCAL对我来说是否更好。 我的persistence.xml: org.apache.openjpa.persistence.PersistenceProviderImpl osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/invDataSource) osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/invDataSource) com.company.service.Invoice 我在blueprint.xml中的bean: 我的代码: entityManager.getTransaction().begin(); entityManager.persist(a); entityManager.persist(b); entityManager.getTransaction().commit(); exception,在我的persistence.xml中使用事务类型RESOURCE_LOCAL : java.lang.IllegalStateException: Transaction management is not available for container managed EntityManagers. 我也尝试在我的persistence.xml中使用事务类型JTA ,但后来我收到了OptimisticLockException 。 我不确定哪种方法更好(RESOURCE_LOCAL或JTA),但主要的是在我的代码对象中a和b需要在事务中持久化(全部或全部)。 我正在使用Fuse ESB(camel,cxf等)。 感谢您的任何提示或帮助。