Кое време за изчакване се използва в JTA транзакция

Имам анотиран метод:

@Transactional(timeout = 600)

и след това в конфигурацията на уеблогичен сървър съм задал време за изчакване на JTA на 60s. Кое време за изчакване ще се използва в тази процедура?


person hudi    schedule 09.09.2013    source източник


Отговори (1)


Предполагам, че за всички @Transactional методи/класове, където не е посочено време за изчакване, е взета стойността по подразбиране на weblogic от 60. Ако зададете време за изчакване T (както във вашия пример), то се заема. Така че във вашия случай за този метод ще бъде 600.

person Andrei I    schedule 09.09.2013
comment
да, знам кой таймаут се използва, когато не съм го задал като параметър, но вие не отговорихте на въпроса ми. - person hudi; 09.09.2013
comment
добре thx сега е ясно. 100% сигурен ли си? Можете ли да пуснете линк, където е описана тази ситуация - person hudi; 09.09.2013
comment
Доста съм сигурен, тъй като е подобно с JBoss, но не го тествах. Можете да го тествате доста просто: 1. намалете времето за изчакване на weblogic до 3 секунди. 2. Задайте времето за изчакване на метода на 60 и в метода вземете crt. time и направи цикъл while, в който итерация проверява дали са изминали 50 секунди. Ако не бъде хвърлено изключение TransactionTimeoutException, анотацията @Transactional презаписва по подразбиране на weblogic. - person Andrei I; 09.09.2013