Уважаемый Господа помогите плз.
Имеются 2 таблицы в двух разных БД.
Слить в одну нельзя т.к. разные хозяева баз.
Логика работы следующая:
Клиент (поток HTTP сервера) стартует транзакцию.
вставляет в одну из таблицу первой БД timestamp, дабы обеспечить пессимистическую блокировку записи, затем выбирает данные из первой БД и передает их пользователю (WEB page). Остальные пользователи не должны иметь возможность обращаться к этой же записи (для чего и делается блокировка). Пользователь может подтвердить или отвергнуть предложение (а может и вообще забыть, но в этом случае по небольшому таймауту транзакция откатывается).
В случае если пользователь подтверждает, то нужно сделать следующее:
попытаться внести изменения в таблицу в второй БД.
внести изменения в туже таблицу, в которую вставлялся timestamp и еще в одну таблицу в первой БД. Причем логика работы такова, что транзакции для обращения к первой БД должна быть с параметром nowait, а транзакция ко второй БД должна быть с параметром wait. Таким образом объеденить запрос в одну транзакцию и передать в нее два хендла БД не получаецца.
Кто нидь работал с двузфайзным завершением транзакций и поможет ли это в моем случае? Лезть в IB API не пужает совсем.
P.S. Делать две отдельные транзакции и подтверждать в клиенте сначала одну потом другую вариант не очень красивый. Две базы должны быть хорошо синхронизированы, а вариант зависания случайного или злонамеренного, когда одна транзакция подтверждена, а вторая нет приводит к ОЧЕНЬ неприятным последствиям.
Помогите с организацией транзакций при запросе к двум БД плз
смотри про двухфазный коммит в www.ibase.ru/devinfo/ibtrans.htm