5.4. 清除过期的事务


以下属性允许您清除过期的交易:

ExpiryEntryMonitor

当 Recovery Manager 初始化到期扫描器线程时,会创建 ExpiryEntryMonitor 对象,用于从对象存储中删除死的项目。动态加载多个扫描程序模块,这将删除特定类型的死项目。

您可以使用 RecoveryEnvironmentBean.expiryScanners 系统属性在属性文件中配置扫描程序模块。扫描程序模块是在初始化时加载的。

$ EAP_HOME/bin/standalone.sh -DRecoveryEnvironmentBean.expiryScanners=CLASSNAME1,CLASSNAME2
Copy to Clipboard Toggle word wrap
expiryScanInterval

所有扫描程序模块定期调用,以便通过 ExpiryEntryMonitor 线程扫描死项。您可以使用 expiryScanInterval 系统属性以小时为单位配置这个周期,如下例所示:

$ EAP_HOME/bin/standalone.sh -DRecoveryEnvironmentBean.expiryScanInterval=EXPIRY_SCAN_INTERVAL
Copy to Clipboard Toggle word wrap

所有扫描程序模块继承来自 ExpiryScanner 接口的相同行为。此界面提供的扫描方法由所有扫描程序模块实施,包括以下内容:扫描程序线程调用这个扫描方法。

ExpiredTransactionStatusManagerScanner

ExpiredTransactionStatusManagerScanner 从对象存储中删除死的 TransactionStatusManagerItems。这些项目在对象存储中保留在删除之前的特定时间段,默认为 12 小时。您可以使用 transactionStatusManagerExpiryTime 系统属性(以小时为单位)配置这个时间周期,如下例所示:

$ EAP_HOME/bin/standalone.sh -DRecoveryEnvironmentBean.transactionStatusManagerExpiryTime=TRANSACTION_STATUS_MANAGER_EXPIRY_TIME
Copy to Clipboard Toggle word wrap
AtomicActionExpiryScanner

AtomicActionExpiryScanner 可移动假定已完成 AtomicAction 的事务日志。例如,如果在告知参与者提交后发生故障,但在 事务 子系统可以更新日志之前,在恢复后 JBoss EAP 事务管理器尝试重播提交请求。此重播显然会失败,从而导致日志无法被删除。当因为损坏或零长度等原因无法自动恢复日志时,也可以使用 AtomicActionExpiryScanner。所有日志都会根据附加 /Expired 的旧位置移动到特定的位置。

注意

默认情况下禁用 AtomicActionExpiryScanner。您可以通过在事务管理器属性文件中添加它来启用它。您不需要启用它来应对损坏的日志。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部