ما هو الفرق بين "ORA-12571: فشل كاتب حزمة TNS" و "ORA-03135: الاتصال المفقود"؟
سؤال
أنا أعمل في بيئة حيث نحصل على مشكلات في الإنتاج من وقت لآخر تتعلق بتوصيلات Oracle. نستخدم ODP.NET من تطبيقات ASP.NET ، ونشك في أن جدار الحماية يغلق الاتصالات التي كانت في مجموعة الاتصال لفترة طويلة.
في بعض الأحيان ، نحصل على خطأ "ORA-12571: فشل كاتب حزمة TNS" ، وأحيانًا نحصل على "ORA-03135: الاتصال المفقود."
كنت أتساءل عما إذا كان شخص ما قد واجه هذا و/أو لديه فهم للفرق بين الأخطاء.
المحلول
باستخدام تشبيه الهاتف المحمول:
- ORA-12571 (الفشل) يعني أن المكالمة يتم إسقاطها.
- ORA-03135 (Connection Lost) حزب آخر معلق.
نصائح أخرى
أفهم أن 3135 يحدث عند فقدان الاتصال. هذا لا يخبرك لماذا فقدت الاتصال ، رغم ذلك. ربما تم إنهاءه بواسطة الخادم لأن الخادم فشل في استجابة استجابة لمسبق لفترة معينة من الوقت ، وافترض أن الاتصال قد مات. أو (لست متأكدًا من هذا) العكس الدقيق لذلك: فشل العميل في استجابة استجابة للتحقيق من الخادم لفترة معينة من الوقت ، لذلك افترض أن الاتصال قد فقد. يتم cotrolded "كمية معينة من الوقت" بواسطة sqlnet.expire_time = [دقائق] في sqlnet.ora.
أما بالنسبة إلى 12571 ، فإن فهمي (الغامض مرة أخرى) هو أنه كان هناك فشل مفاجئ في إرسال حزمة أثناء الاتصال مع الخادم ، وأن هذا ناتج عادة عن بعض البرامج أو الأجهزة التي تتداخل مع الاتصال (إما عن طريق التصميم ، أو عن طريق الخطأ ). على سبيل المثال ، إذا قمت بسحب كابل Ethernet الخاص بك ثم حاول تنفيذ استعلام ، فمن المحتمل أن تحصل على هذا. أو إذا قرر تطبيق جدار الحماية أو تطبيق مكافحة البرامج الضارة حظر حركة المرور.