我最近遇到了与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调用并联

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top