Я пытаюсь сделать двухфазный коммит, используя SQLalchemy 0.6.8 с Postgresql 8.3.4, но я думаю, что что-то упустил ...
Рабочий процесс выглядит следующим образом:
session = sessionmaker(engine)(autocommit=True)
tx = session.connection().begin_twophase(xid) # Doesn't issue any SQL
session.begin()
session.add(obj1)
session.flush()
tx.prepare()
затем из другого сеанса
session = sessionmaker(engine)(autocommit=True)
session.connection().commit_prepared(xid, recover=True) # recover=True because otherwise it complains that you can't issue a COMMIT PREPARED from inside a transaction
Это не вызывает никакой ошибки, но и ничего не записывает в таблицу ... O_o
Что мне не хватает?
Я пытался даже заблокировать приложение после prepare()
и выдать COMMIT PREPARED 'xid'
от pgadmin, но все равно ничего не пишется.