我正在尝试使用 JBeret 实现收集可能需要大约 5 天才能完成的大量数据。我们正在使用带有子系统(jberet)的 Wildfly 10.1.0 应用程序服务器作为内存作业存储库运行提取。
我将用于从数据库收集数据的块过程和用于压缩过程的批处理作为单个作业 ID 下的两个步进过程。
此外,我正在使用多线程运行提取,这意味着我们正在使用 10 个线程并行收集数据。
由于数据库速度慢/内存问题面临作业失败异常。
2018-01-07 00:49:24,999 ERROR [org.jberet] (Batch Thread - 8) JBERET000007: Failed to run job simple-batchlet-job, step1, org.jberet.job.model.Chunk@3f63b3dd: javax.transaction.RollbackException: ARJUNA016102: The transaction is not active! Uid is 0:ffffac1d2026:37db6cf6:5a4f7329:49355
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1190)
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:126)
如果数据库中遇到任何异常问题,是否有可能暂停所有线程并将其恢复,以便我们可以从数据库中清除垃圾。
谢谢。