اتصالات متعددة مع نفس سلسلة الاتصال تحت معاملة واحدة، معاملة مرتفعة؟

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

سؤال

عند استخدام ADO.NET، وإنشاء اتصالات متعددة إلى قاعدة بيانات MS SQL Server ضمن معاملة واحدة (باستخدام System.Transactions.transactionscope)، هل ينفذ النظام. ترتفع المعاملة من مدير المعاملات خفيفة الوزن إلى منسق المعاملات الموزعة (منسق معاملات Kernel على نظام التشغيل Vista)، حتى لو كانت سلاسل الاتصال هي نفسها لجميع كائنات الاتصال؟

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

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

المحلول

في الإصدار الحالي، يرفع دائما المعاملة، لسوء الحظ.

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

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