ماذا يعني الخطأ ORA-12571 (TNS: Packet Conster Failure) في خدمة الويب؟

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

سؤال

خلفية: أنا أتصل بخدمة ويب مكتوبة في ASP.NET التي تستفسر عن قاعدة بيانات Oracle. أعرف أن خدمة الويب نفسها تعمل ، لأنني استخدمتها قبل التطبيقات الأخرى. لذلك لديّ تطبيق ويب في Visual Studio كنت أتحول إليه ذهابًا وإيابًا إلى الإشارة من خدمة الويب "DEV" إلى إصدار تكوين إنتاج من نفس خدمة الويب للاختبار. لا يمثل الإشارة إلى خدمة الويب التي تم تكوينها "DEV" مشكلة ، لكن استدعاء إصدار الإنتاج ، أحصل دائمًا على استثناء يدعو الخدمة:

SoapException was unhandled by user code
Server was unable to process request. ---> could not execute query
[ SELECT this_.FIELD1 as FIELD1_18_0_, this_.FIELD2 as FIELD12_18_0_ FROM ABC.TABLE_A this_ WHERE this_.FIELD1 like :p0 ORDER BY this_.FIELD1 asc ]
Positional parameters:  #0>00073%
[SQL: SELECT this_.FIELD1 as FIELD1_18_0_, this_.FIELD2 as FIELD12_18_0_ FROM ABC.TABLE_A this_ WHERE this_.FIELD1 like :p0 ORDER BY this_.FIELD1] ---> ORA-12571: TNS:packet writer failure

قمت بتشغيل استعلامات SQL مقابل قاعدة البيانات المناسبة (قطع ولصق مباشرة من رسالة الاستثناء) وعاد الاستعلام مع البيانات المتوقعة. لقد حاولت تحديث وإعادة التغلب على مرجع خدمة الويب على حد سواء كـ "مرجع خدمة" (.NET 3.0+ طريقة) وك "مرجع ويب" (طريقة .NET القديمة) ، وكلاهما يعطي نفس الخطأ.

سؤال: إذن ، ماذا يعني خطأ "ORA-12571: TNS: فشل كاتب الحزمة" في سياق خدمة الويب؟ إن البحث عن رقم خطأ Oracle يعطي بعض الأسباب الغامضة للغاية مثل "اتصال الكبل الفضفاض" أو "صراع عنوان IP". أنا متأكد إلى حد ما من أنه ليس من هذه ، لأن تطبيقًا مختلفًا يستخدم حاليًا خدمة الويب هذه. ربما نوع من خطأ التكوين ، أو ربما شيء أكثر دقة؟ أي شخص آخر رأى رقم الخطأ في أوراكل المزعج يعزى إلى شيء مرتبط بالخدمة على شبكة الإنترنت؟

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

المحلول

تنتقل مكالمتك من عميل WS إلى خادم WS إلى قاعدة بيانات Oracle.

خطأك هو خطأ ORA ، والذي يتم إنشاؤه بواسطة قاعدة البيانات. لذلك ربما تكون مشكلتك بين خادم WS وقاعدة البيانات.

عندما قمت بتشغيل "استعلامات SQL مقابل قاعدة البيانات المناسبة" ، هل فعلت ذلك من خادم الويب؟ إذا لم يكن بإمكانك تجربة ذلك. تأكد من أنك تستخدم نفس تكوين الاتصال.

تعديل

وفقًا للتعليق أدناه ، كانت المشكلة الحقيقية عدم تطابق السائق.

نصائح أخرى

أود أن أقترح إعادة فحص افتراضاتك بعناية أكبر ، حيث من الواضح أن هذا خطأ في حوار خدمة الويب مع DB ويجب أن يكون مستقلاً تمامًا عن المتصل W/S.

إذا كانت مكالمة W/S تولد هذا الاستثناء المحدد ، فيجب أن تفعل ذلك لجميع الدعوات الأخرى ، وبالتالي فإن "تطبيقك الآخر" الذي يستخدم خدمة الويب بنجاح هو ببساطة عدم تنفيذ نفس الرمز أو هناك عوامل خارجية في اللعب.

في كلتا الحالتين ، لا علاقة لها بكيفية تسجيل الخدمة أو الاحتجاج بها.

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