2011-01-23 3 views
3

Может ли кто-нибудь подтвердить, выполняется ли оркестровка BizTalk в одном потоке? или несколько? Во время обезвоживания/возобновления двигатель BizTalk создаст новый поток или приостановит/пробудит тот же поток. Я имею в виду использование контекста темы для хранения уникального идентификатора запроса, который будет использоваться для журналов группы активности в базе данныхОркестрация однопоточная?

Благодарности

+0

есть ли другой вариант, похожий на [threadStatic], который будет уникальным для оркестровки? Мы не можем использовать static, если переменная не должна делиться между несколькими экземплярами оркестровки. –

ответ

7

Ваша единственная гарантия, что одна форма будет выполнена в одном потоке без перерыва. Следующая форма может быть выполнена на другом потоке, другом процессоре или даже на другой машине!

Таким образом, использование ThreadContext для хранения данных между различными формами - определенно плохая идея. Существует причина, по которой существуют переменные Оркестрации и почему они должны быть сериализуемыми!

Если вы хотите группировать журналы активности, используйте идентификатор экземпляра оркестровки, который гарантированно останется неизменным на протяжении всей жизни оркестровки.

+0

Спасибо, но передача идентификатора оркестровки в метод ведения журнала не является предпочтительным вариантом, потому что мы должны изменить код для 50+ услуг. –

+1

Просто добавьте к этому. Нить, выполняющая оркестровку, умирает, как только ее обезвоживают. После регидратации он будет выполняться в другом потоке, возможно, на другой машине. Является ли это настраиваемым механизмом ведения журнала? – Rich

+0

есть ли другой вариант, похожий на [threadStatic], который будет уникальным для оркестровки? Мы не можем использовать static, если переменная не должна делиться между несколькими экземплярами оркестровки –

Смежные вопросы