خوادم BizTalk متعددة في مجموعة biztalk - كيفية التعامل مع التزامن؟

StackOverflow https://stackoverflow.com/questions/2174966

سؤال

أنا مسؤول حاليًا عن طرح عملية نشر ذات بيئة متعددة ، ونحن نخطط لنشر خادمين أو أكثر من BizTalk في مجموعة BizTalk لتوفير توفر عالي وقابلية للتوسع.

إن اهتمامنا الآن هو كيفية التعامل مع التزامن للمحولات مثل WCF SQL ومحولات الملفات لأنه من المحتمل أن يكون من الممكن على سبيل المثال محول SQL أن يستمر اثنان من مضيف BizTalk على الاقتراع على نفس جدول DB.

في البداية ، تستخدم فكرتي لـ SQL تلميحات قفل ، لكنني لست متأكدًا حقًا مما إذا كان هناك أي قلق آخر بشأن هذا أو إذا كان هناك أي حل آخر مثبت.

بالنسبة إلى محول الملف ما أعرف أنه من الممكن تعيين محول الاستقبال لتغيير اسم ملف الملف أثناء المعالجة بحيث يتجنب مضيف BizTalk الآخر التقاط الملف ومع ذلك لست متأكدًا مما إذا كان هذا الحل يكفي بالفعل للتعامل مع التزامن .

سأكون أقدر أي مساعدة / اقتراحات.

شكرا جزيلا

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

المحلول

في جنرال لواء ستتجنب معظم محولات BizTalk ظروف السباق لك خارج الصندوق.

على سبيل المثال ، يقوم محول ملفات BizTalk بتنفيذ قفل الملفات بالفعل ، لذا لن تقرأ مثيلات متعددة من محول الملفات على مضيفات مختلفة نفس الملف.

تم شرح استخدام ميزة إعادة تسمية الملف أدناه (من وثائق MSDN)

يمكنك أيضًا تكوين محول تلقي الملف لإعادة تسمية الملفات عند معالجتها. يجب عليك إعادة تسمية الملفات للتأكد من أن محول الاستلام لا يولد رسائل مكررة إذا تم إيقاف تشغيل موقع الاستلام وإعادة تشغيله

هناك العديد من المحولات التي ليست آمنة عند التشغيل على مثيلات متعددة. وتشمل هذه (ولكن قد يكون هناك آخرون) محولات POP3 و FTP و MSMQ/MSMQT ومحولات قاعدة البيانات في سيناريوهات الاقتراع.

بالنسبة لتلك المحولات ، يمكنك استخدام ميزة BizTalk للمضيفين المجمعة. هناك منشور هنا شرح استخدام وتكوين مضيف متجمع. هذه هي أسهل طريقة لضمان أن استطلاع SQL الخاص بك لن ينتج عنه تكرارات. يمكنك أيضًا تحقيق ذلك على مستوى SQL إذا كنت بحاجة إلى ذلك.

علاوة على ذلك ، فأنت تدخل بالفعل في تفاصيل العمليات التجارية وستحتاج إلى التصميم لكل حالة. على سبيل المثال - ماذا يحدث إذا تم توفير الملف نفسه مرتين بواسطة نظام المصدر؟

شاهد ما يلي ما يلي منشورات للحصول على مزيد من المعلومات حول هذا الموضوع:

BizTalk - استلم قراءة المنفذ مرتين من ديسيبل

شبكة تحميل مثيلات biztalk

نصائح أخرى

يمكن أن يساعدك هذا القسم من MSDN أيضًا:

http://msdn.microsoft.com/en-us/library/aa558765(bts.20).aspx

شكرا لك على الإجابة والروابط التي قدمتها. في الواقع ، لقد قرأت بالفعل بعضًا منهم وكنت قادرًا أيضًا على إجراء بعض الاختبارات فيما يتعلق بهذه الحلول. بالنسبة لمحول SQL ، يثبت مجموعة BizTalk Host Clustering حلاً جيدًا ولكنه سيؤدي إلى عدم زيادة ميزة مجموعة BizTalk (التكرار المضيف) لغرض قابلية التوسع. ولهذا السبب قررنا أننا سنتجنب حل التجميع ولكن بالنسبة لـ MessageBox الذي يحتاج حقًا إلى التجميع لتوافر عالي. ما نحاول إنجازه هو وجود مجموعة نشطة / نشطة أو يجب أن أقول موازنة التحميل عن طريق مجموعة خادم BizTalk مما يعني أننا سنحصل حقًا على العديد من SQL Adapter Adapter في وقت واحد. في البداية ، كان الحل الخاص بي في مستوى الاستعلام معالجة تلميحات قفل ، فيما يلي عينة من sp.

MERGE INTO EmployeeComp
USING (SELECT EmployeeID
FROM
[AdventureWorks].[dbo].[EmployeeComp] 
WITH (READPAST, UPDLOCK) 
WHERE
[AdventureWorks].[dbo].[EmployeeComp].[Status] = 0) e(EmployeeID)
 ON EmployeeComp.EmployeeID = e.EmployeeID
WHEN MATCHED THEN
 UPDATE SET
 STATUS = 2

OUTPUT Inserted.EmployeeID, Inserted.Name, Inserted.Status;

هل يمكنك تقديم بعض الملاحظات مع SP التي قمت بإنشائها؟ لقد أجريت العديد من الاختبارات مع حوالي 500000 بيانات يقرأها محول BizTalk WCF-SQL ومن ثم في الوقت نفسه آلاف البيانات التي يتم كتابةها وتثبت أنها تعمل على أنها ما كنت أتوقع.

على الرغم من أن الحل يبدو جيدًا ، لكنني لست متأكدًا بعد ما هي الآثار على هذا النوع من الحل ، ربما يمكنك إلقاء بعض الضوء على هذا أيضًا؟

كما كنت أفكر إذا كان من الممكن استخدام وسيط خدمة خادم SQL من هذه المقالة. http://blogs.msdn.com/adapters/archive/2008/06/30/using-the-wcf-sql-adapter-to-read-messages-from-ssb-queues-and-submit-them-to- biztalk.aspx

في الوقت الحالي ، ما زلت أتحقق من ذلك ولم أكن متأكداً بعد ما إذا كان من الممكن العمل.

شكرا جزيلا

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