سؤال

لقد واجهت مؤخرا مشكلة في الطبيعة المتعددة الخيوط لمخطط BizTalk وكيفية مقابض الجمعيات الخارجية.

كما يشير هذا الاقتباس من MSDN:

الأهمية يجب أن يكون أي رمز مكتوب في تجميع خارجي للاستخدام في Functoid البرمجة النصية مؤمنا. هذا مطلوب لأن مثيلات متعددة من الخريطة يمكنها استخدام مثيلات .NET هذه في وقت التشغيل تحت ظروف الإجهاد.

سيقوم Mapper بإعادة استخدام مثيلات المجالس الخارجية.

في جمعية الأداة المساعدة، كان فريقي يستخدم لدينا التعليمات البرمجية التالية:

public class MapUtil
{
    private string _storeReference;

    public void SetStoreReference(string ref)
    {
       _storeReference = ref;
    }

    public string GetStoreReference()
    {
        return _storeReference;
    }
}

كان هذا يسبب مخزيرات من ملف واحد يتم تعيينها إلى ملفات مختلفة.

i (ظهور) قد إصلاح هذا عن طريق تزيين الحقل الخاص مع [ThreadStatic]

[ThreadStatic]
private static string _storeReference;

سؤالي هو - هل يعرف أحد بأي مشاكل مع هذا في مخطط BizTalk؟ أنا أدرك أن هناك مشاكل باستخدام [ThreadStatic] في ASP.NET للتباهي، نظرا لإعادة استخدام الخيوط، ولكن لا يمكن أن تجد أي وثائق في طريقة صفقات مخطط BizTalk مع المواضيع.

هل كانت مفيدة؟

المحلول 2

ما زلت غير موجود بيانا نهائيا على غرار "سلوك الخيوط داخل Mapper BizTalk هو XYZ، لذلك يجب أن تهتم بك طريقة استخدام ABC 'وأنا غير متأكد من أن مثل هذه الإجابة ستأتي من أي مكان خارج فريق منتج BizTalk.

بلدي زميله مع جهات الاتصال المباشرة لفريق المنتج هو على إجازة عيد الميلاد الممتدة (الكلب المحظوظ)، لذلك حتى يعود، اعتقدت أنني لاحظ أنه مع التغيير الذي تم إجراؤه على رمزنا لم نر تكرارا واحدا لقضايا الخيوط خادم إنتاج عالية الحجم.

حسنا - هذا ليس صحيحا تماما، تمكنت من تفويت الكلمة الأساسية الثابتة من خاصية واحدة على فئة المساعد الخاصة بي وللطيران التي ما زلت نرى مشكلات الخيوط. سوف آخذ ذلك كدليل على ThreadStatic كونها الطريقة الصحيحة للذهاب الآن.

نصائح أخرى

لقد استخدمت الخيوط لوضع متغير هو مخصص تلقي خط أنابيب ثم الوصول إلى قيمته داخل خريطة BizTalk (من خلال فئة المساعد). لم تحصل على أي مشكلة حتى الآن - اختبارها مع ~ 50 دعوات بالتوازي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top