أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

FIX: رسالة خطأ عند تشغيل "عامل توزيع" لمزامنة المشتركين مع Publisher في Microsoft SQL Server 2005 أو دفق البيانات جدولي الواردة SQL Server 2008: '' دفق البروتوكول (RPC) غير صحيح استدعاء الإجراء البعيد (TDS) "

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

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

42000 تدفق الواردة جدولي البيانات استدعاء الإجراء البعيد (TDS) دفق البروتوكول (RPC) غير صحيح. تم توفير معلمات كثيرة جداً في هذا الطلب RPC. الحد الأقصى هو ٢١٠٠. 8003

عندما تحدث هذه الأخطاء بشكل متكرر يمكن أن يتأثر الأداء. عند حدوث فشل في "عامل توزيع" سيفعله معالجة إعادة المحاولة لمحاولة نفس الأوامر مرة أخرى. لذلك، يستخدم "عامل توزيع" المزيد من الوقت لمزامنة المشتركين مع الناشر لأن كل دفعة مشكوك هو حاول مرتين.
السبب
عند معالجة "عامل توزيع" الأوامر المعلقة في قاعدة البيانات التوزيع, فهو يستخدم المعلمة CommitBatchSize ثم يتم batched المعلمة CommitBatchThreshold للمساعدة في تحديد كيفية العديد من الأوامر معاً كـ تنفيذ واحد عندما يرسل تلك الأوامر إلى المشتركين.

المعلمة CommitBatchSize هي عدد المعاملات يتم إصدار المشتركين قبل إصدار عبارة الالتزام. القيمة الافتراضية هي 100. المعلمة CommitBatchThreshold الرقم من الأوامر النسخ المتماثل يتم إصدار المشتركين قبل إصدار عبارة الالتزام. الافتراضي هو 1000.

لأن معاملة واحدة يمكن أن تحتوي على أمر واحد أو يمكن أن يحتوي على العديد من الأوامر, قد يسمح إعداد معلمة CommitBatchSize إلى 100 و إعداد معلمة CommitBatchThreshold إلى 1000 العديد من الأوامر ألف تسليم في دفعة واحدة من الأوامر.

عند إضافة إحدى المقالات في منشور @ ins_cmd ، @ upd_cmd ، و @ del_cmd من نوع الأمر النسخ المتماثل يتم تعيين معلمات sp_addarticle تخزين أوامر الإجراء لتحديد كيفية تسليم المشترك. بالإضافة إلى CommitBatchSize ومعلمات CommitBatchThreshold على "عامل توزيع" أيضاً وضع في الاعتبار أن هناك متطلبات الحد الأقصى في SQL الأصلي عميل موفر OLE DB على يمكن ربط عدد المعلمات في دفعة واحدة من الأوامر التي يتم إرسالها إلى المشترك.

يوجد أقصى ٢١٠٠ المعلمات التي يمكن استخدامها في دفعة واحدة من الأوامر. عامل توزيع لذلك تلقائيًا بتقسيم دفعات كبير إلى عبارات كافية فقط لكل دفعي بحيث لا يتم تجاوز الحد أقصى المعلمات ٢١٠٠. ثم يتم نقل أية أوامر المتبقية في دفعة الأمر تلقائياً إلى الدفعة التالية من التنفيذ.

تحدث هذه المشكلة عند "عامل توزيع" بحساب عدد المعلمات المطلوبة لتسليم دفعة أوامر بشكل غير صحيح. يحدث هذا إذا كان "عامل التوزيع" يستخدم الإجراء المخزن الحيوية sp_executesql كـ مجمّع من أجل دفعة من العديد من الأوامر المنسوخة نسخاً متماثلاً.

في حالة يحتوي الأمر المنسوخة نسخاً متماثلاً على 2098 أكثر من المعلمات في الأمر batch الملتفة الأمر الدفعي باستخدام الإجراء sp_executesql تخزين لتسليم الدفعي مثل عبارة SQL للعمليات المضمنة بشكل حيوي "عامل توزيع" لا يتضمن في العملية الحسابية التي sp_executesql تخزين الإجراء احتياجات إضافية منضم معلمتين نفسه تعمل. لذلك، قد يتجاوز العدد الإجمالي معلمات ٢١٠٠ معلمات.

قد تستخدم "عامل توزيع" هذا الاختيار التسليم من عبارة SQL للعمليات المضمنة بشكل حيوي الملتفة في إجراء sp_executesql المخزنة في الحالات التالية:
  • تحتوي هذه المقالة على ارتباطات يحتوي على أعمدة كائن كبير ثنائي (BLOB) مثل نص أو إلى أعمدة صور.
  • يتم استخدام أكثر من نوع الأمر النسخ المتماثل عبر بكافة المقالات. على سبيل المثال إذا المقالة واحد يستخدم نوع الأمر SQL النسخ المتماثل التسليم ولكن مقالة أخرى يستخدم الإجراء sp_MSins_procedure تخزين نوع الأمر النسخ المتماثل.
الحل

SQL Server 2005

تم إصدار الإصلاح الخاص بهذه المشكلة أولاً في التحديث التراكمي 5 لـ SQL Server 2005 المزود بحزمة الخدمة Service Pack 3. لمزيد من المعلومات حول حزمة التحديث التراكمي هذه انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
972511حزمة التحديث التراكمي 5 SQL Server 2005 المزود بحزمة الخدمة Service Pack 3
ملاحظة لأن وبالطريقة تراكمية، يتضمن كل إصدار إصلاح جديد كافة الإصلاحات العاجلة وأصلح كافة تصحيحات الأمان التي تم تضمينها مع SQL Server 2005 السابقة الإصدار. توصي Microsoft مراعاة تطبيق أحدث إصدار الإصلاح الذي يحتوي على هذا الإصلاح العاجل. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
960598بناء SQL Server 2005 التي تم إصدارها بعد إصدار SQL Server 2005 المزود بحزمة الخدمة Service Pack 3
Microsoft SQL Server 2005 يتم إنشاء الإصلاحات العاجلة حزم خدمة SQL Server معينة. يجب تطبيق الإصلاح عاجل SQL Server 2005 المزود بحزمة الخدمة Service Pack 3 إلى تثبيت SQL Server 2005 المزود بحزمة الخدمة Service Pack 3. بشكل افتراضي، يتم تضمين الإصلاحات الجديدة المتوفرة في حزمة خدمة لـ SQL Server في حزمة خدمة لـ SQL Server التالية.

SQL Server 2008

SQL Server 2008

هام يجب استخدام إصلاح هذا إذا كنت تستخدم نسخة إصدار SQL Server 2008.

تم إصدار الإصلاح الخاص بهذه المشكلة أولاً في 7 التحديث التراكمي. لمزيد من المعلومات حول كيفية الحصول على حزمة التحديث التراكمي هذه لـ SQL Server 2008 انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
973601حزمة التحديث التراكمي 7 SQL Server 2008
ملاحظة لأن وبالطريقة تراكمية، يتضمن كل إصدار إصلاح جديد كافة الإصلاحات العاجلة وأصلح كافة تصحيحات الأمان التي تم تضمينها مع SQL Server 2008 السابقة الإصدار. ونحن ننصح بالتفكير تطبيق أحدث إصدار الإصلاح الذي يحتوي على هذا الإصلاح العاجل. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
956909بناء SQL Server 2008 التي تم إصدارها بعد إصدار SQL Server 2008

SQL Server 2008 المزود بحزمة الخدمة Service Pack 1 (SP1)

هام يجب استخدام إصلاح هذا إذا كنت تستخدم SQL Server 2008 المزود بحزمة الخدمة Service Pack 1 (SP1).

تم إصدار الإصلاح الخاص بهذه المشكلة أولاً في التحديث التراكمي 4 لـ SQL Server 2008 المزود بحزمة الخدمة Service Pack 1. لمزيد من المعلومات حول حزمة التحديث التراكمي هذه انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
973602حزمة التحديث التراكمي 4 SQL Server 2008 المزود بحزمة الخدمة Service Pack 1
ملاحظة لأن وبالطريقة تراكمية، يتضمن كل إصدار إصلاح جديد كافة الإصلاحات العاجلة وأصلح كافة تصحيحات الأمان التي تم تضمينها مع SQL Server 2008 السابقة الإصدار. توصي Microsoft مراعاة تطبيق أحدث إصدار الإصلاح الذي يحتوي على هذا الإصلاح العاجل. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
970365بناء SQL Server 2008 التي تم إصدارها بعد إصدار SQL Server 2008 المزود بحزمة الخدمة Service Pack 1
Microsoft SQL Server 2008 يتم إنشاء الإصلاحات العاجلة حزم خدمة SQL Server معينة. يجب تطبيق الإصلاح عاجل SQL Server 2008 المزود بحزمة الخدمة Service Pack 1 إلى تثبيت SQL Server 2008 المزود بحزمة الخدمة Service Pack 1. بشكل افتراضي، يتم تضمين الإصلاحات الجديدة المتوفرة في حزمة خدمة لـ SQL Server في حزمة خدمة لـ SQL Server التالية.
الحل البديل
للتغلب على هذه المشكلة، استخدم إحدى الطرق التالية:

الطريقة الأولى

للمساعدة في تقليل مرات حدوث هذا الخطأ إلى مستوى tolerable أكثر تقليل قيمة CommitBatchSize ومعلمات CommitBatchThreshold لعامل التوزيع. الهدف لتقييد الحد الأقصى لعدد الأوامر لكل الدفعي الالتزام لتجنّب تجاوز معلمات 2,100 لكل دفعة أوامر.

على سبيل المثال، القيمة الافتراضية للمعلمة CommitBatchSize هو 100. يمكنك تغييره إلى 10. القيمة الافتراضية للمعلمة CommitBatchThreshold هو 1000. يمكنك تغييره إلى 100.

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

يمكنك تغيير CommitBatchSize ومعلمات CommitBatchThreshold باستخدام أحد الأساليب التالية:
  • إضافة معلمات CommitBatchSize و CommitBatchThreshold في الأمر خطوة مهمة "عامل التوزيع" في SQL Server عامل
  • تغيير CommitBatchSize ومعلمات CommitBatchThreshold عند إنشاء ملف تعريف عامل جديد من مربع الحوار "خصائص موزع" أو من "مراقبة النسخ المتماثل".
لمزيد من المعلومات حول كيفية تغيير هذه المعلمات قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:


إذا كنت تريد لتجنب هذا الخطأ في إعادة المحاولة فيما بعد من الدُفعة بشكل كامل يجب أن تخطط أسوأ سيناريو حالة. للقيام بذلك، ابحث عن المقالة أعرض له معظم عدد الأعمدة في المنشور. على سبيل المثال، إذا كان لديك جدول يحتوي على أعمدة 100 والتي يتم نشرها في المنشور المعاملات أمر واحد منسوخ نسخاً متماثلاً ضد هذا الجدول يمكن أن تحتوي على معلمات 100. يجب تقليل إعداد معلمة CommitBatchThreshold بحيث يكون أقصى عدد من المعلمات التي قام "عامل توزيع" لإرسال في أي دفعة واحدة على الأكثر 2098. إذا كان تتأثر كافة الأعمدة إلى الأمر "، يكون الإعداد المعلمة CommitBatchThreshold 20 أو أصغر للسماح بحد أقصى 2000 معلمات لكل دفعة أوامر 20 ضد هذا الجدول.

الطريقة الثانية

استخدم نفس نوع الأمر النسخ المتماثل بكافة المقالات في المنشور عند إعداد المنشور. تجنب خلط آليات التسليم الأمر لمقالات في نفس المنشور إلى تقليل الحاجة إلى "عامل توزيع" لتحديد تسليم الدُفعة باستخدام الإجراء sp_executesql تخزين مجمّع على دفعة أوامر.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "تنطبق على".
معلومات أخرى
لمزيد من المعلومات حول "توزيع عامل" النسخ المتماثل قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:

للحصول على مزيد من المعلومات حول ملفات تعريف عامل النسخ المتماثل قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:
مراجع
لمزيد من المعلومات حول "نموذج تقديم تزايدي" لـ SQL Server انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
935897يتوفر "نموذج تقديم تزايدي" من فريق SQL Server لتسليم الإصلاحات العاجلة لمشكلات تم الإبلاغ عنها
للحصول على مزيد من المعلومات حول كيفية الحصول على SQL Server 2005 المزود بحزمة الخدمة Service Pack 3 انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
913089كيفية الحصول على أحدث حزمة خدمة لـ SQL Server 2005
للحصول على مزيد من المعلومات حول الميزات الجديدة في SQL Server 2005 SP3 وحول التحسينات الموجودة في SQL Server 2005 SP3 قم بزيارة موقع Microsoft التالي على الويب: لمزيد من المعلومات حول مخطط التسمية لتحديثات SQL Server "، انقر فوق رقم المقالة التالي لعرضها في" قاعدة المعارف لـ Microsoft:
822499مخطط تسمية جديدة حزم تحديثات برامج Microsoft SQL Server
لمزيد من المعلومات حول مصطلحات تحديث البرامج "، انقر فوق رقم المقالة التالي لعرضها في" قاعدة المعارف لـ Microsoft:
824684وصف للمصطلحات القياسية المستخدمة في وصف تحديثات برامج Microsoft

Warning: This article has been translated automatically

خصائص

رقم الموضوع: 973103 - آخر مراجعة: 08/17/2009 11:33:41 - المراجعة: 1.2

  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
  • kbmt kbsurveynew kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced kbhotfixserver KB973103 KbMtar
تعليقات