【发布时间】:2018-08-17 19:06:00
【问题描述】:
我有一个在 JBOSS EAP 7 上运行的 JEE 应用程序。有一个长时间运行的异步方法可以将数据导入另一个系统。蜂鸣触发后 5 分钟后出现事务问题,这是 JBOSS 默认事务超时。到目前为止,一切都很好。我改变了行为(伪代码):
Before:
@Transactional(Required) //which is default
//The whole process takes usually longer than 5 min
void doImport{
for(n-number of datsets){
importOneDataSet();
}
}
After:
@Transactional
void doImport{
for(n-number of datsets){
importOneDataSet();
}
}
...
@Transactional(Requires_New)
//a new transaction is created and the "outer" is suspended
//to import one dataset is below 5min
void importOneDataSet(){
...
}
我假设外部事务超时在暂停/暂停时停止,但 5 分钟后我仍然遇到事务超时错误。
看来暂停交易并不会影响其交易超时?该应用服务器是我们在 JEE 标准中定义的吗? 第三个问题是:您将如何解决这个问题?不开外部交易?增加该事务的超时时间(仅)?
令人费解的是,我读过的大多数交易文章甚至都没有提到这个事实。关于该主题的唯一提示是one blog post。
【问题讨论】:
标签: jakarta-ee jboss transactions ejb-3.0 java-ee-7