قد تتلقى رسالة إعلام بخطأ 7391 في SQL Server 2000 عند تشغيل معاملة موزعة مقابل ملقم مرتبط بعد تثبيت Windows Server 2003 أو Windows XP Service Pack 2

الأعراض

عندما تقوم بتشغيل معاملة موزعة على مثيل SQL Server، قد تتلقى رسالة خطأ مشابهة لما يلي:

ملقم: Msg 7391، مستوى 16 حالة 1، سطر 1
تعذر تنفيذ العملية لأن موفر OLE DB 'SQLOLEDB' قادرة على بدء معاملة موزعة. [موفر OLE/DB إرجاع الرسالة: يتعذر إدراج حركة جديدة منسق المعاملات المحدد.] تتبع خطأ OLE DB [ITransactionJoin::JoinTransaction 'SQLOLEDB' "موفر" OLE/DB عاد 0x8004d00a].


قد تحدث هذه المشكلة إذا تحققت إحدى الحالات التالية:
  • يتم تثبيت Microsoft Windows Server 2003 أو Microsoft Windows XP Service Pack 2 (SP2) على جهاز الكمبيوتر الذي يقوم بتهيئة المعاملات الموزعة.
  • يتم تثبيت نظام التشغيل Microsoft Windows Server 2003 أو نظام التشغيل Microsoft Windows XP SP2 على الكمبيوتر البعيد الذي يقوم بتشغيل Microsoft SQL Server 2000، ويرتبط هذا الكمبيوتر إلى الكمبيوتر الذي يقوم بتهيئة المعاملة الموزعة.

السبب

تحدث هذه المشكلة بسبب واحد أو أكثر من الأسباب التالية:
  • تم تعطيل منسق المعاملات الموزعة ل Microsoft (MSDTC) لمعاملات شبكة الاتصال.
  • يتم تمكين جدار حماية Windows على الكمبيوتر. بشكل افتراضي، جدار حماية Windows بحظر برنامج منسق المعاملات الموزعة ل Microsoft (MSDTC).

    ملاحظة: قد تحدث هذه المشكلة حتى في حالة إيقاف تشغيل "جدار حماية Windows".

الحل البديل

هام: يحتوي هذا المقطع أو الأسلوب أو المهمة على الخطوات التي توضح كيفية تعديل التسجيل. ومع ذلك، قد تحدث مشكلات خطيرة إذا قمت بتعديل التسجيل بشكل غير صحيح. لذلك، تأكد من اتباع الخطوات التالية بعناية. للحماية الإضافية، قم بعمل نسخة احتياطية للسجل قبل تعديله. بعد ذلك، يمكنك استعادة السجل في حالة حدوث مشكلة. لمزيد من المعلومات حول كيفية عمل نسخة احتياطية من السجل واستعادته، انقر فوق رقم المقالة التالية لعرضها في "قاعدة معارف Microsoft":
322756 كيفية عمل نسخة احتياطية من السجل واستعادته في نظام التشغيل Windows


لحل هذه المشكلة، اتبع هذه الخطوات على الكمبيوتر الذي تم تثبيت Windows Server 2003 أو Windows XP SP2 على:
  1. تأكد من أن حساب خدمة ms DTC تسجيل الدخول كحساب خدمة الشبكة . للقيام بذلك، اتبع الخطوات التالية:
    1. انقر فوق ابدأ، وثم انقر فوق
      قم تشغيل.
    2. في مربع الحوار تشغيل ، اكتب
      Services.mscوثم انقر فوق
      OK.
    3. في الإطار " الخدمات "، حدد موقع خدمة " منسق المعاملات الموزعة " ضمن
      اسم في الجزء الأيسر.
    4. ضمن العمود اسم تسجيل الدخول ، راجع ما إذا كان حساب تسجيل الدخول باسم خدمة الشبكة أو النظام المحلي.

      إذا كان حساب تسجيل الدخول باسم خدمة الشبكة، انتقل إلى الخطوة 2. إذا كان حساب تسجيل الدخول كحساب النظام المحلي ، متابعة هذه الخطوات.
    5. انقر فوق ابدأ، وثم انقر فوق
      قم تشغيل.
    6. في مربع الحوار تشغيل ، اكتب
      cmd، ثم انقر فوق موافق.
    7. في موجه الأوامر، اكتب msdtc Net stop لإيقاف خدمة ms DTC.
    8. في موجه الأوامر، اكتب Msdtc-إلغاء لإزالة MSDTC.
    9. في موجه الأوامر، اكتب regedit لفتح "محرر التسجيل".
    10. في "محرر التسجيل"، حدد موقع المفتاح التالي:

      مفتاح التسجيل HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC.

      حذف هذا المفتاح.
    11. قم بإنهاء "محرر التسجيل".
    12. في موجه الأوامر، اكتب Msdtc-تثبيت لتثبيت MSDTC.
    13. في موجه الأوامر، اكتب Net start msdtc لبدء تشغيل خدمة ms DTC.

      لاحظ أنه يتم تعيين تسجيل الدخول كحساب خدمة ms DTC لحساب خدمة شبكة الاتصال .
  2. تمكين MSDTC للسماح بحركة الشبكة. للقيام بذلك، اتبع الخطوات التالية:
    1. انقر فوق ابدأ، وثم انقر فوق
      قم تشغيل.
    2. في مربع الحوار تشغيل ، اكتب
      dcomcnfg.exeومن ثم انقر فوق
      OK.
    3. في الإطار " خدمات المكونات "، توسيع خدمات المكونات، قم بتوسيع أجهزة الكمبيوترثم قم بتوسيع جهاز الكمبيوتر.
    4. انقر نقراً مزدوجاً فوق جهاز الكمبيوتر، ومن ثم انقر فوق خصائص.
    5. في مربع الحوار خصائص جهاز الكمبيوتر ، انقر فوق تكوين الأمان في علامة التبويب MSDTC .
    6. في مربع الحوار تكوين الأمان ، انقر لتحديد خانة الاختيار وصول DTC للشبكة .
    7. للسماح بالمعاملات الموزعة ليتم تشغيلها على هذا الكمبيوتر من كمبيوتر بعيد، انقر لتحديد خانة الاختيار السماح بالوارد .
    8. للسماح بالمعاملات الموزعة ليتم تشغيلها على جهاز كمبيوتر بعيد من هذا الكمبيوتر، انقر لتحديد خانة الاختيار السماح بالصادر .
    9. ضمن مجموعة اتصال إدارة المعاملات ، انقر لتحديد الخيار عدم المصادقة المطلوبة . تعيين عدم المصادقة المطلوبة على كل من العميل والأنظمة البعيدة.
    10. في مربع الحوار تكوين الأمان ، انقر فوق "موافق".
    11. في مربع الحوار خصائص جهاز الكمبيوتر ، انقر فوق "موافق".
  3. تكوين جدار حماية Windows لتضمين البرنامج MSDTC وتتضمن منفذ 135 كاستثناء. للقيام بذلك، اتبع الخطوات التالية:
    1. وانقر فوق ابدأ، ثم انقر فوق تشغيل.
    2. في مربع الحوار تشغيل ، اكتب Firewall.cpl، ومن ثم انقر فوق "موافق"
    3. في لوحة التحكم، انقر نقراً مزدوجاً فوق
      جدار حماية Windows.
    4. في مربع الحوار "جدار حماية Windows" ، انقر فوق إضافة برنامج في علامة التبويب استثناءات .
    5. في مربع الحوار إضافة برنامج ، انقر فوق الزر استعراض ، ومن ثم حدد موقع الملف Msdtc.exe. بشكل افتراضي، يتم تخزين الملف في < محرك أقراص التثبيت >: \Windows\System32 المجلد.
    6. في مربع الحوار إضافة برنامج ، انقر فوق
      OK.
    7. في مربع الحوار "جدار حماية Windows" ، انقر لتحديد
      خيار msdtc في قائمة البرامج والخدمات .
    8. انقر فوق " إضافة منفذ " في علامة التبويب استثناءات .
    9. في مربع الحوار إضافة منفذ ، اكتب 135 في
      مربع نص رقم المنفذ ، وثم انقر لتحديد الخيار TCP .
    10. في مربع الحوار إضافة منفذ ، اكتب اسماً للاستثناء في
      اسم مربع النص ومن ثم انقر فوق
      OK.
    11. في مربع الحوار "جدار حماية Windows" ، حدد الاسم الذي استخدمته للاستثناء الوارد في الخطوة j في قائمة البرامج والخدمات ، ومن ثم انقر فوق
      OK.
  4. قم باختبار تنفيذ الأمر ping من الملقم المضيف للخادم البعيد ومن الملقم البعيد إلى الملقم المضيف، باستخدام اسم netbios (اسم الملقم، دون المجال). منسق المعاملات الموزعة ل Microsoft يستخدم اسم netbios، ليس اسم المجال المؤهل بالكامل لتحديد الملقمات. فشل تحليل الاسم، ستفشل المعاملات الموزعة. في حال استخدام اسم netbios أوامر ping، راجع مقالة قاعدة المعارف التالية:
    ترتيب تحليل اسم مضيف TCP/IP Microsoft 172218

الحالة

أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".

مزيد من المعلومات

خطوات إعادة إنشاء المشكلة

  1. تسجيل الدخول إلى جهاز كمبيوتر يحتوي على تثبيت Windows XP SP2 أو Windows Server 2003.
  2. بدء تشغيل "محلل الاستعلام".
  3. إضافة كمبيوتر بعيد يقوم بتشغيل Microsoft SQL Server 2000 كخادم مرتبط. للقيام بذلك، تشغيل عبارة SQL للعمليات التالية في "محلل الاستعلام":
    EXEC sp_addlinkedserver  '<remote_server>',  N'SQL SERVER'GO

    ملاحظة: استبدال remote_server باسم الكمبيوتر الذي يجب أن يتم تكوين ملقم مرتبط.
  4. تشغيل معاملة موزعة بين هذا الكمبيوتر والكمبيوتر البعيد. للقيام بذلك، تشغيل عبارة SQL للعمليات التالية في "محلل الاستعلام":
    SET xact_abort ON GO
    USE pubs
    GO
    BEGIN DISTRIBUTED TRANSACTION
    SELECT * FROM <remote_server>.pubs.dbo.authors
    COMMIT TRAN
    GO

    قد تظهر رسالة الخطأ المذكورة في قسم "الأعراض".

المراجع

لمزيد من المعلومات حول تكوين Windows XP Service Pack 2 للاستخدام مع SQL Server 2000، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

كيفية تكوين Windows XP Service Pack 2 للاستخدام مع SQL Server 841249

خصائص

رقم الموضوع: 839279 - آخر مراجعة: 15‏/01‏/2017 - المراجعة: 1

تعليقات