业务流程是单线程的吗?

时间:2011-01-23 10:00:32

标签: c# biztalk

任何人都可以确认是否在单个线程上执行了BizTalk业务流程?还是多个?在脱水/恢复期间,BizTalk引擎会创建新线程还是暂停/唤醒同一个线程。 我正在考虑使用线程上下文来存储唯一的请求ID,该ID将用于对数据库中的活动日志进行分组

由于

1 个答案:

答案 0 :(得分:7)

唯一的保证是单个形状将在一个线程中执行而不会中断。下一个形状可能在不同的线程,不同的处理器甚至是不同的机器上执行!

因此,使用ThreadContext在不同形状之间存储数据绝对是一个坏主意。 Orchestration变量存在的原因以及为什么它们必须是可序列化的!

如果要对活动日志进行分组,请使用业务流程实例ID,该ID在业务流程的生命周期内保证保持不变。