У нас есть внешний веб-сервис, который предоставляет пару API lock
и unlock
. Ниже приведены шаги, выполняемые при сохранении значений в нашей системе.
try
call lock
save changes in single DB transaction
catch user_defined_exception
call unlock
В случае, если есть какое-либо время ожидания транзакции, мы не будем вызывать unlock
, так как это исключение времени ожидания не считается частью определенных пользователем исключений. Также в будущем могут быть введены любые новые исключения, мы не хотим включать все эти исключения и делаем разблокировку.
Мы ищем промышленный стандарт/шаблон для координации транзакций между сервисом и транзакциями базы данных.
Наше приложение построено на java
, а база данных Sybase ASE
. Любые подсказки приветствуются.