Я бы хотел использовать SQL Server 2008 Service Broker для регистрации хода выполнения длительной (до 30 минут) транзакции, которая динамически создается с помощью хранимой процедуры. У меня две цели:
1) Чтобы в реальном времени регистрировать динамически созданные операторы, составляющие транзакцию, чтобы можно было дистанционно контролировать ход транзакции,
2) Чтобы можно было просмотреть шаги, которые составляли транзакцию, до момента, когда мог произойти сбой, требующий отката.
Я не могу просто PRINT (или RAISERROR (msg, 0,0)) на консоль, потому что я хочу записать сообщения о ходе выполнения в таблицу (и сохранить этот журнал, даже если откат сохраненной процедуры).
Но я понимаю, что сообщения не могут быть получены из очереди до тех пор, пока поток отправки не завершит свою работу (внешняя транзакция). Это правда? Если да, какие варианты у меня есть?