Будет ли @Transactional выполнять отклик при истечении времени ожидания ответа HTTP? - PullRequest
0 голосов
/ 01 мая 2020

В REST-приложении с весенней загрузкой. С учетом RestController метода, помеченного @Transactional, когда сервер обрабатывает запрос и возвращает действительный ответ клиенту. Однако клиент не может получить ответ из-за истечения времени ожидания запроса (пример: плохое соединение inte rnet).

Что происходит с транзакцией? Это зафиксировано или откат?

Есть ли способ откатить транзакцию в этом сценарии?

Пример:

@PostMapping(path = "/orders")
@Transactional
public String saveOrderInTransaction(@RequestBody Order order) {
   // Business logic
   return "Order saved";
}

Я предполагаю, что @Transactional фиксируется, когда saveOrderInTransaction() возвращается. Позже контейнер сервлетов (Tomcat) пишет в протокол, который является 3: Сервер: Напишите на диаграмме ниже.

Если это правильно, то я предполагаю, что клиент может получить тайм-аут запроса и не знать, что сервер обработал свой запрос. Верны ли мои предположения? Можно ли выполнить коммит только тогда, когда клиент подтвердит ответ?

Пожалуйста, пришлите мне ссылки с вашими ответами.

enter image description here

...