سؤال

الهندسة المعمارية الأساسية:ن المادية مربعات كل استضافة نفس خدمة WCF, يجلس begind موازن تحميل.كل مربع ضرب قاعدة بيانات واحدة البنية التحتية التي لا دعم المعاملات - لا تسأل :(

حتى في طبقة الوصول إلى البيانات من التطبيق أحتاج طريقة المعاملات الموزعة.ما هي الخيارات المتاحة ؟

علما بأن عملاء النظام سوف يكون إرث تطبيقات التواصل الأساسية باستخدام خدمات الويب (BasicHttpBinding) و لامعة جديدة WCF العملاء (NetTcpBinding أو NetNamedPipeBinding ).


تحرير 1

E. g.سيكون هناك مكالمة واحدة في WCF طبقة المادية مربع 1, على سبيل المثالEditEntity(...).هذه الدعوة سوف تؤدي 2 يكتب إلى قاعدة البيانات.بعد الكتابة الأولى عميل آخر المكالمات EditEntity(...) لنفس الكيان على الدرجة الثانية من خدمة WCF على الثانية المادية مربع.في المربع الثاني كيف أعرف أن الصفقة لهذا الكيان هو بالفعل في اللعب ؟

شكرا

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

المحلول

غير متأكد من أنك قد أعطيت لنا ما يكفي للذهاب في ، ولكن إذا أنا أقرأ بشكل صحيح كنت في محاولة للتأكد من أنك يمكن أن تدعم الصفقة خلال خدمة WCF?في حين DB الخاص بك لا يدعم المعاملات ، WCF النهاية الجلوس وراء موازن تحميل?هل هذا صحيح ؟ إذا كان الأمر كذلك....

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


تحديث:هناك استراتيجيات يمكن استخدامها مع موازنات التحميل التي تضمن استمرار بين اتصالات, ولكن ذلك لن تساعدك هنا.إذا كنت تدعو EditEntity() على التوالي ، الإدخال الأول هو الشروع في المعاملات ، والثاني الدخول لإتمام الصفقة...ثم الخدمة ليست الحبيبية بما فيه الكفاية.

توحيد هذين يدعو إلى أسلوب واحد ، أيEditEntityComplete().

هل هناك سبب لا يمكنك إنشاء أسلوب واحد مقابل اثنين ؟


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

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


المراجعة النهائية:

إعادة النظر في شرط عدم تغيير مخزن البيانات.

وبالنظر إلى متطلبات العملاء متعددة ، الحاجة إلى مقياس, تحميل موازنة المعاملات الدعم في مخزن البيانات, اقتراح نهائي -- دفع إلى تغيير قاعدة البيانات.فهم هذا ثابت الشرط ، ولكن سوف تنفق الكثير من الجهد في محاولة لتنفيذ المعاملات الدعم عند الكثير من قاعدة بيانات بسيطة المنصات سوف توفر لك.محاولة إعادة إنشاء هذه الوظيفة لديه رأسا على عقب ولكن الكثير من السلبي.

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