فشل Sqloledb مع عدم وجود رمز نتيجة متاح لرسالة خطأ: E_OUTOFMEMORY


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

sqloledb failed with no error message available result code: E_OUTOFMEMORY

ومن الأيام القليلة الماضية أتلقى خطأ مرتين يوميًا (حتى بعد إعادة تشغيل الخادم).

كيف يمكنني تتبع السبب.

ما حاولت:

تم التحقق من تسرب الذاكرة في التطبيق ولكن لم يتم العثور على مثل هذا التسرب ولكنه (

E_OUTOFMEMORY

) لا ينبغي أن يأتي في نصف يوم!!

الحل 1

تحقق من خدمة الاستضافة وإعداداتها (كل من خادم الويب ومحرك قاعدة البيانات) – أعتقد أن الصفوف التي تستردها تتجاوز بعض الحد الذي ربما تم تغييره مؤخرًا.

لا يمكننا مساعدتك أكثر في هذا الأمر – ليس لدينا إمكانية الوصول إلى رمز yru الخاص بك، أو أي من خوادمك!

الحل 2

هل تقوم بتحميل عدد كبير من السجلات في الذاكرة في أي مكان؟ فقط لأن “الأمر كان يعمل لسنوات” لا يعني أنك كنت تفعل الأشياء بشكل صحيح.

من المحتمل أن جدول (جداول) قاعدة البيانات الخاصة بك تحتوي الآن على الكثير من البيانات المُدرجة فيها، وأن التعليمات البرمجية الخاصة بك لاسترداد تلك البيانات تنفد الآن من الذاكرة التي يمكنها الاحتفاظ بها كلها.

ما هو الحل؟ ليس بهذه السرعة. عليك أولاً أن تعرف ما هي المشكلة، وأنت الوحيد الذي يمكنه فعل ذلك. لا أحد يعرف أي شيء عن الكود والبيانات وكيفية استرجاع تلك البيانات.

الحل 3

أغلق DataReader وقم بتعيين كائن الأوامر إلى Null.

コメント

タイトルとURLをコピーしました