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