У меня есть веб-приложение, которое запускается в WebSphere, поэтому в Total transaction lifetime timeout на Servers --> WebSphere application servers --> myServerName --> Container Services --> Transaction Service. настроено время ожидания 120 секунд.
Таким образом, если на ответ требуется более 120 секунд, произойдет исключение тайм-аута.
Теперь я бы увеличил значение тайм-аута для конкретной транзакции, выполняемой Spring framework transactionTemplate, код выглядит следующим образом:
transactionTemplate.execute( new TransactionCallbackWithoutResult( ) {
@Override
protected void doInTransactionWithoutResult(
TransactionStatus status) {
try {
// do something here that is no integration
//to database
} catch ( BaseException e ) {
logger.error(
"hit error ",
e );
status.setRollbackOnly( );
}
}
} );
Я хотел бы увеличить этот тайм-аут транзакции до 300 секунд, потому что для его выполнения требуется больше времени, иногда оно превышает 120 секунд.
Любой способ сделать это? Есть ли какая-либо конфигурация или какой-либо метод вызова этого transactionTemplate для увеличения периода тайм-аута? Например, как .setTimeOut(300000);
Я попробовал transactionTemplate.setTimeout( 10 );, он не сработал по таймауту через 10 секунд.




Это то, что вы ищете docs.spring.io/autorepo/docs/spring-framework/5.0.3.RELEASE/…?