gpt4 book ai didi

java - 步骤级别的事务超时与 server.xml

转载 作者:行者123 更新时间:2023-11-30 05:48:54 24 4
gpt4 key购买 nike

在 JSR-352 批处理中,我将 block 处理的步骤级别事务超时定义为 900 秒。同时我在 server.xml 中提到事务超时为 1800 秒。该 block 处理步骤是使用 PartitionMapper 步骤进行分区的。我的问题是,当步骤执行时,很少有线程使用步骤级别事务超时(900 秒)超时。但很少有线程挂起一段时间并根据 server.xml 事务超时(1800 秒)超时。

<step id="ReportBatch" >
<properties >
<property name="javax.transaction.global.timeout" value="900"/>
</properties></step>

server.xml
<transaction clientInactivityTimeout="1800" propogatedOrBMTTranLifetimeTimeout="1800" totalTranLifetimeTimeout="1800" transactionLogDirectory="${server.config.dir}/tranlog/"/>

我预计线程会因步骤级别中提到的 900 秒超时而失败。哪个事务超时优先?从 server.xml 中删除事务超时,或者减少 server.xml 上的超时限制是否可以?

最佳答案

配置事务超时

是的,步骤属性javax.transaction.global.timeout"设置分区级线程在分区 block 步骤中执行“ block ”的事务超时,就像在作业XML中一样(JSL) 片段:

<step id="ReportBatch" >
<properties >
<property name="javax.transaction.global.timeout" value="900"/>
</properties>
<chunk>...</chunk>
<partition>...</partition>
</step>

服务器配置可以通过以下方式设置这些“应用程序”事务超时的上限:

<transaction propogatedOrBMTTranLifetimeTimeout="1800s"/>

因此,在上面的示例中, block 事务的有效 tran 超时将为 900 秒。

这很详细,以及 this 中的一些其他选项问题与解答。

事务超时会发生什么

当事务超时时,事务会立即标记为回滚,并且 messages.log 中会出现一条消息以及相关线程的详细信息,包括堆栈跟踪。

但是,您的应用程序可能不会立即注意到。如果它“挂起”,通过网络进行调用或进行 CPU 密集型计算,它将继续,并且可能只会在接触事务资源或检查事务状态等时看到抛出的异常。

关于java - 步骤级别的事务超时与 server.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54312349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com