BizTalk映射器和[ThreadStatic]属性
-
11-09-2019 - |
题
我最近遇到了与BizTalk映射器的多线程性质的问题以及如何处理外部组件。
如从MSDN此引用表示:
重要强>任何写在代码 外部组件,其用于在使用 脚本functoid需要线程 安全。这是必需的,因为 一地图的多个实例可以使用 在运行时,在这些情况下,.NET 胁迫条件。
在映射器将重复使用的外部组件的实例。
在我的团队使用了我们有下面的代码应用组件:
public class MapUtil
{
private string _storeReference;
public void SetStoreReference(string ref)
{
_storeReference = ref;
}
public string GetStoreReference()
{
return _storeReference;
}
}
此是从一个文件造成storereferences被映射到不同的文件。
I(出现),以通过与[ThreadStatic]
装饰私有字段有固定的这个
[ThreadStatic]
private static string _storeReference;
我的问题是 - 没有人知道在BizTalk映射任何与此问题?我知道,有使用[ThreadStatic]
在Asp.Net的examble被重用的问题,由于线程,但可以找到办法与线程的BizTalk映射交易的文档。
解决方案 2
我依然没有找到沿线的一个明确的说法“BizTalk映射器中的线程行为是XYZ,所以你应该照顾你使用方法ABC”,我不知道,这样的答案会来从BizTalk产品团队以外的任何地方。
我的一个同事直接接触到产品团队是如此,直到他回来我只是想我会注意,有我们的代码所做的更改,我们还没有看到的一个复发节假休假(幸运儿)高体积生产服务器上线程问题。
好了 - 这是不完全正确,我设法错过一个属性static关键字对我的助手类,并为财产,我们也仍然看到线程问题。我把它看作ThreadStatic
证明是去为现在以正确的方式。
其他提示
我已经使用ThreadStatic设置一个变量是定制接收管道,然后(通过一个辅助类)访问其BizTalk映射内的值。还没有得到任何问题到目前为止 - 与测试〜50调用并联
不隶属于 StackOverflow