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

وصف إعدادات TCP/IP قد تضطر إلى تعديل عندما يتم تعطيل تجمع الاتصالات SQL Server

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

اضغط هنا لرابط المقالة باللغة الانجليزية328476
الموجز
عند استخدام برنامج تشغيل SQL Server ODBC أو SQL Server موفر OLE DB الموفر المدار System.Data.SqlClient، يمكنك تعطيل اتصال تجمع باستخدام واجهات برمجة التطبيقات الخاصة (APIs). عند تعطيل تجمع، يمكن زيادة الضغط على مكتبة شبكة SQL Server الأساسية إذا كان التطبيق الخاص بك استمرار فتح وإغلاق اتصالات. توضح هذه المقالة إعدادات TCP/IP معينة قد تضطر إلى تعديل هذه الظروف.
معلومات أخرى
يمكن أن يؤدي إيقاف تشغيل تجمع SQL Server الشبكة برنامج التشغيل الأساسي لسرعة فتح وإغلاق اتصالات مأخذ التوصيل جديدة إلى الكمبيوتر الذي يستخدم SQL Server. قد تضطر إلى تغيير إعدادات مأخذ التوصيل TCP/IP الافتراضية لنظام التشغيل وجهاز الكمبيوتر الذي يستخدم SQL Server للتعامل مع ارتفاع مستويات الإجهاد.

لاحظ أن تناقش هذه المقالة فقط الإعدادات التي تؤثر على مكتبة شبكة SQL Server عند استخدام بروتوكول TCP/IP. يؤدي إيقاف تشغيل تجمع يمكن أيضا المشاكل المتعلقة بالإجهاد ببروتوكولات SQL Server أخرى مثل أنابيب الاتصال المسماة، ولكن هذه المقالة لا يناقش هذا الموضوع. هذه المقالة مخصصة للمستخدمين المتقدمين فقط. إذا لم تكن تعرف المواضيع الموجودة في هذه المقالة، توصي Microsoft بأن ترى كتاب جيدة حول مأخذ التوصيل TCP/IP.

لاحظ أن Microsoft توصي بشدة دائماً استخدام تجمع مع برامج تشغيل SQL Server. استخدام تجمع كبير بتحسين الأداء العام على كل من العميل والخادم SQL عند استخدام برامج تشغيل SQL Server. استخدام تجمع أيضا بقدر كبير إلى تقليل حركة مرور الشبكة للكمبيوتر الذي يستخدم SQL Server. على سبيل المثال، استخدام اختبار نموذج يستخدم ملقم SQL 20.000 الاتصال تفتح وتغلق بتمكين تجميع حوالي 160 حزم شبكة الاتصال TCP/IP بإجمالي 23,520 بايت من نشاط شبكة الاتصال. مع تجمع تعطيل، إنشاء نفس الاختبار نموذج 225,129 حزم شبكة الاتصال TCP/IP بإجمالي 27,209,622 بايت من نشاط شبكة الاتصال.

لاحظ أنه عندما ترى هذه المتصلة بالإجهاد TCP/IP مأخذ التوصيل مشاكل مع مكتبات شبكة SQL Server، قد تظهر واحدة أو أكثر من رسائل الخطأ التالية عند محاولة الاتصال بجهاز كمبيوتر يستخدم SQL Server:
ملقم SQL غير موجود أو تم رفض الوصول
انتهت المهلة
خطأ عام في شبكة الاتصال
موفر TCP: واحد فقط لكل عنوان مأخذ توصيل (عنوان بروتوكول/شبكة/منفذ) يسمح عادة باستخدام.
لاحظ أنه يمكنك أيضا تلقي رسائل خطأ معينة هذه عندما تحدث مشاكل أخرى في SQL Server؛ على سبيل المثال، قد تتلقى رسائل الخطأ هذه في حالة إيقاف تشغيل الكمبيوتر البعيد الذي يقوم بتشغيل SQL Server، إذا كان الكمبيوتر البعيد الذي يقوم بتشغيل SQL Server لا يصغي إلى مأخذ التوصيل TCP/IP على الإطلاق، إذا يتم قطع اتصال شبكة الاتصال للكمبيوتر الذي يستخدم SQL Server لأنه تم سحب كبل شبكة الاتصال، أو إذا كنت تواجه مشاكل في تحليل DNS. بشكل أساسي أي شيء يمكن أن يسبب فشل فتح مأخذ توصيل TCP/IP للكمبيوتر الذي يستخدم SQL Server العميل يمكن أن يسبب رسائل الخطأ. ومع ذلك، مع مشكلة مأخذ المتعلقة بالإجهاد، تحدث المشكلة بشكل متقطع لارتفاع الضغط ويندرج. تشغيل الكمبيوتر للساعات التي ليست بها أخطاء، ثم تحدث مرة واحدة أو مرتين، والكمبيوتر الخطأ ثم تعمل لعدة ساعات إضافية مع عدم وجود أخطاء. أيضا، عند وجود هذه المشكلة، عام الاتصال ب SQL Server الفورية واحد يعمل، فشل التالية، ثم يعمل الفورية التالي مرة أخرى. وبعبارة أخرى، المسائل المتصلة بالإجهاد مأخذ التوصيل عادة ما تحدث بين حين وآخر، ولكن الحقيقي مشكلات الاتصال الشبكي مع SQL Server عادة لا تحدث بصورة متقطعة.

المتصلة بالإجهاد مسألتين رئيسيتين تحدث عادة عند تعطيل تجمع أثناء استخدام بروتوكول TCP/IP ملقم SQL: قد نفدت منافذ المجهول على الكمبيوتر العميل، أو قد يتجاوز الإعداد الافتراضي وينسوكليستينباكلوج على الكمبيوتر الذي يستخدم SQL Server.

للحصول على معلومات إضافية حول المنافذ المجهول، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
319502 PRB: 'وسايدريسينوسي' رسالة خطأ عند محاولة الاتصال عبر منفذ مجهولة بعد زيادة حد الاتصال IMAP

ضبط إعدادات MaxUserPort وتكبتيميدوايتديلاي

لاحظ أن إعدادات MaxUserPort و تكبتيميدوايتديلاي قابلة للتطبيق فقط لكمبيوتر عميل سرعة فتح وإغلاق اتصالات إلى كمبيوتر بعيد يقوم بتشغيل SQL Server والذي لا يستخدم تجمع الاتصالات. على سبيل المثال، تعتبر قابلة للتطبيق على خادم خدمات معلومات إنترنت (IIS) التي تقوم بخدمة عدد كبير من طلبات HTTP الواردة والتي يتم فتح وإغلاق اتصالات إلى كمبيوتر بعيد يعمل بنظام التشغيل SQL Server والتي تستخدم بروتوكول TCP/IP مع تجمع تعطيل هذه الإعدادات. إذا تم تمكين تجمع، لم تكن لضبط إعدادات MaxUserPort و تكبتيميدوايتديلاي .

عند استخدام بروتوكول TCP/IP لفتح اتصال بجهاز كمبيوتر يستخدم SQL Server، فتح مكتبة شبكة SQL Server الأساسية مأخذ توصيل TCP/IP للكمبيوتر الذي يستخدم SQL Server. عندما يفتح هذا المآخذ، عدم تمكين مكتبة شبكة SQL Server خيار مأخذ التوصيل TCP/IP SO_REUSEADDR . لمزيد من المعلومات حول إعداد مأخذ التوصيل SO_REUSEADDR ، راجع الموضوع "Setsockopt" في شبكة مطوري Microsoft (MSDN).

لاحظ أن مكتبة شبكة SQL Server على وجه التحديد لا تمكن خيار مأخذ التوصيل SO_REUSEADDR TCP/IP لأسباب أمنية. عند تمكين SO_REUSEADDR ، مستخدم ضار يمكن يخطفون منفذ عميل إلى ملقم SQL وبيانات الاعتماد التي يوفر العميل الوصول إلى الكمبيوتر الذي يستخدم SQL Server. بشكل افتراضي، نظراً لعدم تمكين مكتبة شبكة SQL Server خيار مأخذ التوصيل SO_REUSEADDR ، كلما قمت بفتح وإغلاق مأخذ توصيل خلال مكتبة شبكة SQL Server على الجهاز العميل، يدخل مأخذ التوصيل حالة TIME_WAIT لمدة أربع دقائق. إذا كنت سرعة فتح وإغلاق اتصالات SQL Server عبر TCP/IP مع تجمع تعطيل، تكون سرعة فتح وإغلاق مأخذ التوصيل TCP/IP. وبعبارة أخرى، كل اتصال SQL Server على مأخذ توصيل tcp/واحد. إذا كانت سرعة فتح وإغلاق مأخذ توصيل 4000 في أقل من أربع دقائق، سوف تصل إلى إعداد الحد الأقصى الافتراضي لمنافذ العميل مجهول، وتفشل محاولات اتصال مأخذ التوصيل الجديدة حتى المجموعة الحالية من مأخذ التوصيل TIME_WAIT انقضاء المهلة.

على الجهاز العميل، قد يلزم زيادة إعدادات MaxUserPort و تكبتيميدوايتديلاي التي تمت مناقشتها في Q319502 عندما يكون لديك تجميع معطل. يتم تحديد إعدادات هذه القيم باتصال SQL Server عدد تحدث فتح وإغلاق من جانب العميل. يمكنك فحص عدد المنافذ العميل الموجودة في حالة TIME_WAIT باستخدام أداة Netstat على جهاز الكمبيوتر العميل. تشغيل الأداة Netstat علامة ن كما يلي، وحساب عدد مأخذ توصيل العميل إلى عنوان IP لملقم SQL الخاصة بك في حالة TIME_WAIT. في هذا المثال، 10.10.10.20 هو عنوان IP للكمبيوتر البعيد الذي يقوم بتشغيل SQL Server وعنوان IP لكمبيوتر العميل هو 10.10.10.10 وثلاثة من تأسيس اتصالات اثنين والاتصالات الموجودة في حالة TIME_WAIT:
C:\>netstat -nActive Connections  Proto  Local Address         Foreign Address       State  TCP    10.10.10.10:2000      10.10.10.20:1433      ESTABLISHED  TCP    10.10.10.10:2001      10.10.10.20:1433      ESTABLISHED  TCP    10.10.10.10:2002      10.10.10.20:1433      ESTABLISHED  TCP    10.10.10.10:2003      10.10.10.20:1433      TIME_WAIT  TCP    10.10.10.10:2004      10.10.10.20:1433      TIME_WAIT				
إذا شغلت netstat n وتشاهد قريبة من 4000 اتصالات IP عنوان الكمبيوتر الهدف الذي يقوم بتشغيل SQL Server في حالة TIME_WAIT، تقوم كل من زيادة الإعداد الافتراضي MaxUserPort وتقليل إعداد تكبتيميدوايتديلاي بحيث لا تقوم بتشغيل منافذ العميل مجهول. على سبيل المثال، يمكنك تعيين إعداد MaxUserPort إلى 20000 وتعيين إعداد تكبتيميدوايتديلاي إلى 30. إعداد تكبتيميدوايتديلاي أقل يعني أن تنتظر مأخذ التوصيل في حالة TIME_WAIT لوقت أقل. يعني إعداد MaxUserPort أعلى يمكن أن يكون أكثر من مأخذ التوصيل في الحالة time_wait.

لاحظ أنه إذا قمت بضبط الإعداد MaxUserPort أو تكبتيميدوايتديلاي ، يجب إعادة تشغيل Microsoft Windows للإعداد الجديد نافذ المفعول. تكون الإعدادات MaxUserPort و تكبتيميدوايتديلاي لأي كمبيوتر عميل يتم التحدث إلى كمبيوتر الذي يقوم بتشغيل SQL Server عبر مأخذ توصيل TCP/IP. هذه الإعدادات لم يتم أي تأثير إذا كان يتم تعيينها على الكمبيوتر الذي يستخدم SQL Server إلا إذا كنت ترغب بجعل اتصالات مأخذ التوصيل TCP/IP المحلية للكمبيوتر الذي يستخدم SQL Server.

ملاحظة: إذا قمت بضبط الإعداد MaxUserPort ، نوصي بحجز port 1434 للاستخدام قبل خدمة مستعرض SQL Server (sqlbrowser.exe). لمزيد من المعلومات حول كيفية القيام بذلك، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
812873 كيفية حجز نطاق من المنافذ المؤقتة على جهاز كمبيوتر يقوم بتشغيل Windows Server 2003 أو Windows 2000 Server

ضبط إعداد وينسوكليستينباكلوج

لمزيد من المعلومات حول إعداد هذا التسجيل الخاصة ب SQL Server، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
154628 INF: سجلات SQL 17832 مع عدة طلبات الاتصال TCP\IP
مكتبة شبكة SQL Server بالإصغاء مأخذ التوصيل TCP/IP، يستخدم مكتبة شبكة SQL Server الإصغاء Winsock API. المعلمة الثانية الاستماع API هو تراكم المسموح بها لمآخذ التوصيل. تراكم هذا يمثل الحد الأقصى لطول قائمة الانتظار للاتصالات لوحدة الإصغاء المعلقة. عندما يتجاوز طول قائمة الانتظار هذا الحد الأقصى للطول، يرفض مكتبة شبكة خادم SQL مباشرة أكثر من محاولات الاتصال بمأخذ التوصيل TCP/IP. بالإضافة إلى ذلك، يرسل مكتبة شبكة SQL Server حزمة ACK + إعادة تعيين.

يستخدم SQL Server 2000 الافتراضي الاستماع تراكم إعداد 5. وهذا يعني أن الكمبيوتر الذي يستخدم SQL Server بتمرير القيمة 5 إلى معامل تراكم الاستماع Winsock API عند إعداد API الاستماع المواضيع الاستماع بروتوكول TCP/IP على جهاز الكمبيوتر الذي يستخدم SQL Server. يمكنك تعديل مفتاح التسجيل وينسوكليستينباكلوج لتعيين قيمة مختلفة لتمريرها لهذه المعلمة. البدء في SQL Server 2005، مكتبة الشبكة تمرير قيمة سوماكسكون كإعداد تراكم الاستماع API. سوماكسكون يسمح موفر Winsock لتعيين الحد الأقصى قيمة معقولة لهذا الإعداد. لذلك، مفتاح التسجيل وينسوكليستينباكلوج لم تعد تستخدم أو المطلوبة في SQL Server 2005.

تراكم إعداد يعمل كما يلي: افترض أن يصغي بخدمة إجبارية للطلبات الواردة من مأخذ التوصيل TCP/IP. إذا قمت بتعيين الإعداد المتأخرة إلى 5 وهي استمرار تدفق العديد من طلبات اتصال مأخذ التوصيل في، لا قادرة على الاستجابة للطلبات الواردة بالسرعة التي وصلت الخدمة. عند هذه النقطة، طبقة مأخذ التوصيل TCP/IP قوائم الانتظار هذه الطلبات الواردة في قائمة انتظار تراكم ويمكن سحب الطلبات من قائمة الانتظار هذه الخدمة ومعالجة طلب اتصال مأخذ التوصيل الواردة فيما بعد. بعد امتلاء قائمة الانتظار، طبقة مأخذ التوصيل TCP/IP مباشرة رفض أية طلبات إضافية من مأخذ عليها عن طريق إرسال حزمة ACK + إعادة تعيين إلى العميل. زيادة زيادة حجم قائمة انتظار تراكم العدد انتظار اتصال مأخذ توصيل طلبات أن طبقة مأخذ التوصيل TCP/IP قوائم الانتظار قبل أن يتم رفض طلبات.

لاحظ أن إعداد وينسوكليستينباكلوج الخاص ب SQL Server. يحاول ملقم SQL لقراءة إعداد هذا السجل عند بدء تشغيل خدمة SQL Server. إذا كان الإعداد غير موجود، يتم استخدام القيمة الافتراضية 5. في حالة وجود إعداد التسجيل، SQL Server يقرأ الإعداد ويستخدم القيمة التي تم توفيرها كما يسمى تراكم الإعداد عند الاستماع WinSock API كما يتم تعيين TCP/IP مأخذ توصيل الإصغاء مؤشرات الترابط داخل SQL Server.

لتحديد إذا كنت تشغل في هذه المشكلة، يمكنك تشغيل تتبع "مراقب شبكة الاتصال" على الكمبيوتر الذي يستخدم SQL Server أو العميل وابحث عن طلبات الاتصال مأخذ التوصيل التي تم رفضها مباشرة مع ACK + إعادة تعيين. في حالة فحص حزم TCP/IP في "مراقبة الشبكة"، راجع حزمة كالتالي عند حدوث هذه المشكلة:
Frame: Base frame propertiesETHERNET:  EType = Internet IP (IPv4) IP: Protocol = TCP - Transmission Control; Packet ID = 40530; Total IP Length = 40; Options = No OptionsTCP: Control Bits: .A.R.., len:    0, seq:         0-0, ack:3409265780, win:    0, src: 1433  dst: 4364   TCP: Source Port = 0x0599	  TCP: Destination Port = 0x110C  TCP: Sequence Number = 0 (0x0)  TCP: Acknowledgement Number = 3409265780 (0xCB354474)  TCP: Data Offset = 20 bytes  TCP: Flags = 0x14 : .A.R..    TCP: ..0..... = No urgent data    TCP: ...1.... = Acknowledgement field significant    TCP: ....0... = No Push function    TCP: .....1.. = Reset the connection    TCP: ......0. = No Synchronize    TCP: .......0 = Not the end of the data  TCP: Window = 0 (0x0)  TCP: Checksum = 0xF1E7  TCP: Urgent Pointer = 0 (0x0)				
لاحظ أن المنفذ المصدر هو 0x599 أو 1433 بالأرقام العشرية. وهذا يعني أن يأتي الحزمة من كمبيوتر نموذجي الذي يقوم بتشغيل SQL Server والذي يقوم بتشغيل المنفذ الافتراضي من 1433. لاحظ أيضا تعيين دلالة حقل الإعلام وعلامات إعادة تعيين الاتصال . إذا كنت معتاداً على تصفية عملية تتبع "مراقب شبكة الاتصال"، يمكنك تصفية القيمة إعلام TCP ب 0x14 الست عشري مشاهدة الحزم ACK + إعادة تعيين في تتبع "مراقبة شبكة الاتصال".

لاحظ أنه يمكنك أيضا مشاهدة الحزم ACK + إعادة تعيين مماثلة إذا كان جهاز الكمبيوتر الذي يستخدم SQL Server ليست قيد التشغيل على الإطلاق، أو إذا كان الكمبيوتر الذي يستخدم SQL Server لا يصغي إلى بروتوكول TCP/IP، حيث رؤية حزم ACK + إعادة التعيين غير محدد التأكيد كنت تواجه هذه المشكلة. إذا وينسوكليستينباكلوج منخفضا جداً، قبول بعض محاولات الاتصال بحزم وتلقى بعض اتصالات مباشرة حزم ACK + إعادة التعيين في نفس الإطار الزمني.

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

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

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 328476 - آخر مراجعة: 03/15/2015 03:08:00 - المراجعة: 12.0

Microsoft SQL Server 2000 Standard Edition, Microsoft ADO.NET 1.1, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbsqlsetup kbinfo kbmt KB328476 KbMtar
تعليقات
/body>