Цитата:
Короче говоря, нужен экзит в момент выхода без сохранения
Жесть конечно (транзакционная)
Может быть тогда вам более сложным но надёжным путём пойти: вести учёт неких квитанций подтверждения резервирования в смежной системе?
Т.е. както так:
1. в момент изменения кол-ва прошёл успешно вызов резервирования во внешней;
2. в табличку-журнал легла запись-квитанция "для транзакции XXXXX резервирование произведено" (где XXXXX наверное из сериализуемого счётчика диапазона номеров брать уникальное);
3. если сохраняют заказ, то в конце апдейта своя запись-квитанция удаляется из таблички п.2;
4. периодическое фоновое задание (или админ) мониторит табличку 2, если там надолго зависли записи, значит ктото нафигачил резервирований в смежной системе, а у себя заказ не сохранил, - запускаем "подметальщик", прибиваем эти резервирования в смежной системе.
Тогда у вас более менее стабильно-гарантированно будет при любых выкидываниях из заказа (вплоть до перезагрузки сервера AS) обеспечиваться асинхронная чистка мусорных резервирований в смежной системе.