여기에는 JBoss EAP 6.2에 배포 된 EAR 내부에서 실행되는 EJB 타이머에 의해 트리거되는 코드 조각이 있습니다. JBoss EAP : @TransactionTimeout이 @Timeout 메서드에 영향을 미치지 않습니까?
onTimeout(Timer timer)
방법 내에서 처리 내가이 솔루션을 함께했다 standalone.xml에 지정된 기본 트랜잭션 제한 시간보다 훨씬 더 오래 걸릴 수 있기 때문에
//[...]
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerService;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import org.jboss.ejb3.annotation.TransactionTimeout;
//[...]
@Startup
@Singleton
public class DataqReaderServiceImpl extends AbstractDataqReaderService {
@Resource
private TimerService timerService;
@Override
@Timeout
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
@TransactionTimeout(unit = TimeUnit.MINUTES, value = 60)
protected void onTimeout(Timer timer) {
try {
super.readDataq(timer);
} catch (Exception e) {
timer.cancel();
}
}
}
//[...]
그러나 appearantly @TransactionTimeout
주석이 무시됩니다
2016-12-19 15:12:21,878 WARN [com.arjuna.ats.arjuna] (Transaction Reaper) ARJUNA012117: TransactionReaper::check timeout for TX 0:ffff0a07065b:296fc7c:5857e084:67ef in state RUN
2016-12-19 15:12:21,881 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012095: Abort of action id 0:ffff0a07065b:296fc7c:5857e084:67ef invoked while multiple threads active within it.
2016-12-19 15:12:21,881 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012108: CheckedAction::check - atomic action 0:ffff0a07065b:296fc7c:5857e084:67ef aborting with 1 threads active!
2016-12-19 15:12:21,882 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012121: TransactionReaper::doCancellations worker Thread[Transaction Reaper Worker 0,5,main] successfully canceled TX 0:ffff0a07065b:296fc7c:5857e084:67ef
어디 까지나 나의 실수는 무엇입니까?
public 메소드로 변경해보십시오. https://issues.jboss.org/browse/WFLY-850을 참조하십시오. –