当前位置: 首页 > 知识库问答 >
问题:

Quarkus如何增加事务超时?

濮阳奇逸
2023-03-14
...
quarkus.datasource.url=jdbc:postgresql://...:5432/....
quarkus.datasource.driver=org.postgresql.Driver
quarkus.datasource.username=user
quarkus.datasource.password=password
quarkus.hibernate-orm.database.generation=update
...
@ApplicationScoped
class MyScheduler {

...

    @Transactional
    @Scheduled(every = "7200s")
    open fun process() {

        ... my slow proccess goes here...
        entityManager.persist(myObject)

    }
}
2019-06-24 20:11:59,874 WARN  [com.arj.ats.arjuna] (Transaction Reaper) ARJUNA012117: TransactionReaper::check timeout for TX 0:ffff0a000020:d58d:5cdad26e:81 in state  RUN

2019-06-24 20:12:47,198 WARN  [com.arj.ats.arjuna] (DefaultQuartzScheduler_Worker-3) ARJUNA012077: Abort called on already aborted atomic action 0:ffff0a000020:d58d:5cdad26e:81

Caused by: javax.transaction.RollbackException: ARJUNA016102: The transaction is not active! Uid is 0:ffff0a000020:d58d:5cdad26e:81

谢谢!

共有1个答案

龚安民
2023-03-14

Quarkus还不允许全局配置默认事务超时(请参见https://github.com/quarkusio/Quarkus/pull/2984)。

但您应该能够在用户事务级别执行此操作。

您可以在postconstruct块中注入UserTransaction对象并设置事务超时。

@ApplicationScoped
class MyScheduler {

    @Inject UserTransaction userTransaction;

    @PostConstruct
    fun init() {
        //set a timeout as high as you need
        userTransaction.setTransactionTimeout(3600);
    }

    @Transactional
    @Scheduled(every = "7200s")
    open fun process() {
        entityManager.persist(myObject)

    }
}
 类似资料:
  • 我有JMS队列消息处理器序列,其中请求被发送到SOAPendpoint。但是,对此endpoint的请求可能需要很长时间,最多30分钟左右。如何配置ESB以允许长超时值?目前,我在60秒后得到以下错误: 谢谢你的帮助 编辑:我在repository/conf/passthru-http.properties中添加了http.socket.timeout=1800000-property,这似乎解决

  • 问题内容: 如何增加交易超时时间?我想上传视频,但是没有上传大尺寸的视频? 引发错误 问题答案: 您需要在php.ini中更改一些设置:

  • 在运行测试时,我需要长时间的延迟(约40秒)。 我看到了,在那段时间里,Selenium会话被删除了。 请帮助:如何配置会话超时以增加? 在Selenium节点日志中开始延迟后的30秒内,我看到了以下内容: 信息org.openqa.selenium.remote.server。DriverServlet-由于客户端超时,会话7f5fffec-4882-4c4c-b091-c780c66d379d

  • 我的应用程序有几个API,所有这些API都得到一个事务id作为头,我们有没有办法将事务id访问到中?我们尝试了,但没有帮助。基本上,我正在寻找有效的方式来添加事务id到每个日志。

  • 我有一个应用程序,它使用spring 4 . 0 . 1 JPA hiba Nate 4 . 2 . 8(spring的JpaTransactionManager,localcontainereentitymanagerfactorybean,带有HibernateJpaDialect和apache的BasicDataSource作为数据源)进行数据库访问。在某个时刻,应用程序开始一个长时间运行的

  • 问题内容: 我正在使用iOS 7的新版本来检索数据,如下所示: 如何增加超时值以避免错误(在 Code =中)? 我已经检查了NSURLSessionConfiguration的文档,但是没有找到设置超时值的方法。 谢谢您的帮助! 问题答案: 对象 迅速 文档怎么说 并指定请求和资源的超时间隔。 -等待其他数据时使用的超时间隔。每当有新数据到达时,与该值关联的计时器就会重置。当请求计时器达到指定的