有没有办法禁用超时,而无需摆脱TomEE中的事务管理器?
我从tomee.xml的示例事务管理器是:
<TransactionManager id="MyTransactionManager" type="TransactionManager">
adler32Checksum = true
bufferSizeKb = 32
checksumEnabled = true
<!--defaultTransactionTimeout = 10 minutes-->
defaultTransactionTimeout = 10000 minutes
flushSleepTime = 50 Milliseconds
logFileDir = txlog
logFileExt = log
logFileName = howl
maxBlocksPerFile = -1
maxBuffers = 0
maxLogFiles = 2
minBuffers = 4
threadsWaitingForceThreshold = -1
txRecovery = false
</TransactionManager>
但有时交易可能超过 10000 分钟(~7 天)。
TomEE 版本 1.7.4
7 天?圣烟!你到底在做什么?:D
不幸的是,如果您删除它,它将恢复为默认值。但是,您可以简单地放置以下内容,这将正常工作:
<TransactionManager id="MyTransactionManager" type="TransactionManager">
...
defaultTransactionTimeout = 10 days
...
</TransactionManager>
或者,
您可以使用 Bean 包装代码调用,使用 UserTransaction 设置该特定情况的持续时间: http://docs.oracle.com/javaee/6/api/javax/transaction/UserTransaction.html#setTransactionTimeout(int)