تصحيح: تحميل المتكررة و Unload تسرب الذاكرة الظاهرية 1 ميغا بايت أسباب Mtxdm.dll

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

232351
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الأعراض
عند تحميل وتفريغ Mtxdm.dll ضمن حلقة، يعتبر تسرب 1 ميغا بايت في الذاكرة الظاهرية مع كل تكرار خلال الحلقة.

هذا الأكثر احتمالاً أن تحدث في التطبيقات التي تستخدم تجمع اتصالات ODBC إجراء اتصالات متكررة والارتباطات من قاعدة بيانات النهاية الخلفية، أو تطبيقات ODBC بالعديد من الاتصالات والارتباطات إلى الخلفية Oracle.
السبب
التسرب في الذاكرة الظاهرية هي السبب استدعاء TerminateThread() ضمن Mtxdm.dll.

عند استخدام تجمع الاتصالات داخل أحد تطبيقات ODBC، يتم تحميل إدارة موزع (Mtxdm.dll) لإدارة تجمع الاتصال، التي تتم معالجتها من قبل مؤشر ترابط عامل تشغيل ضمن Mtxdm.dll.

عند انتهاء التطبيق، يتم مقتولة مؤشر ترابط العامل باستدعاء TerminateThread() التي سوف لا تنظيف وتحرير 1 ميغا بايت الذاكرة المخصصة لمكدس مؤشر ترابط العامل.

هذا السلوك نفسه يمكن رؤية عند إجراء اتصالات متكررة والارتباطات إلى ملقم قاعدة بيانات Oracle، نظراً لتحميل برنامج تشغيل Microsoft Oracle ODBC Mtxdm.dll ما إذا كان تجمع الاتصالات قيد الاستخدام أو لا.
الحل
لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة ل Windows NT 4.0 أو تحديث البرنامج الفردية. للحصول على معلومات حول كيفية الحصول على أحدث حزمة خدمة، الرجاء الانتقال إلى:
للحصول على معلومات حول كيفية الحصول على تحديث البرنامج الفردية، اتصل بخدمات دعم منتجات Microsoft. للحصول على قائمة كاملة من أرقام الهواتف خدمات دعم منتجات Microsoft ومعلومات حول تكاليف الدعم، الرجاء الانتقال إلى العنوان التالي على شبكة ويب العالمية:

ملقم Windows NT أو محطة العمل 4.0

لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة ل Windows NT 4.0 أو تحديث البرنامج الفردية. للحصول على معلومات حول كيفية الحصول على أحدث حزمة خدمة، الرجاء الانتقال إلى:
للحصول على معلومات حول كيفية الحصول على تحديث البرنامج الفردية، اتصل بخدمات دعم منتجات Microsoft. للحصول على قائمة كاملة من أرقام الهواتف خدمات دعم منتجات Microsoft ومعلومات حول تكاليف الدعم، الرجاء الانتقال إلى العنوان التالي على شبكة ويب العالمية:

نظام التشغيل Windows NT Server 4.0، إصدار الملقم الطرفي

لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة ل Windows NT Server 4.0، إصدار الملقم الطرفي. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها فيقاعدة معارف Microsoft:
152734 كيفية الحصول على أحدث حزمة خدمة ل Windows NT 4.0

تصريح
أقرت Microsoft أن هذه هي مشكلة في منتجات Microsoft المسردة في بداية هذه المقالة. تم تصحيح هذه المشكلة أولاً في ملقم Windows NT الإصدار 4.0, Terminal Server Edition Service Pack 6.

مزيد من المعلومات

التثبيت اليدوي للإصلاح العاجل 051099a

ملاحظة: للحصول على هذا الإصلاح العاجل، يجب الاتصال خدمات دعم منتجات Microsoft. الرجاء مراجعة قسم "الحل" من هذه المقالة لمزيد من المعلومات.
  1. إغلاق أو إيقاف أية تطبيقات أو خدمات تستخدم Mtxdm.dll. قد يتضمن هذا ملقم معلومات إنترنت (IIS) Microsoft معاملة Server (MTS)، Microsoft منسق المعاملات الموزعة (DTC) وأية تطبيقات ADO أو ODBC.
  2. تنزيل الإصلاح العاجل (051099a.exe) في دليل مؤقت وتشغيلها لاستخراج الملفات التالية:
    • Mmtxdm.dll
    • Readme.txt
  3. موقع وإعادة تسمية الإصدار الحالي من Mtxdm.dll، يجب أن تكون في المجلد\Winnt\System32 لأجهزة كمبيوتر Windows NT، وفي المجلد\Windows\System لأجهزة الكمبيوتر Windows 9x.
  4. نسخ إصدار إصلاح عاجل Mtxdm.dll في نفس الموقع، ثم إعادة تشغيل الخدمات والتطبيقات.

خطوات إعادة إنشاء السلوك

إنشاء تطبيق وحدة تحكم C/c + + استخدام التعليمة البرمجية التالية. تشغيل هذا التطبيق أثناء استخدام "مراقبة الأداء" لعرض "وحدات البايت الظاهرية" للتطبيق.

ملاحظة: يستخدم نموذج التعليمة البرمجية مصدر بيانات ODBC الذي يتصل بالخلفية Oracle، نظراً لتحميل برنامج تشغيل Microsoft Oracle ODBC Mtxdm.dll، وأكثر سهولة يوضح المشكلة.
   #include        <windows.h>   #include        <stdio.h>   #include        <sql.h>   #include        <sqlext.h>   #include        <assert.h>   #define CK_RT(x) if( x != SQL_SUCCESS && x != SQL_SUCCESS_WITH_INFO)    assert(0)   void main(){       HENV        henv;       HDBC        hdbc;       RETCODE     rc = SQL_SUCCESS;       char        *dsnStr="DSN=OracleServer;UID=scott;pwd=tiger;";       short       rtnLen = 0;       UCHAR       rtnDSN[999] = "";       int         i,x;       for (i=0; i < 100; i++)   	{               rc = SQLAllocEnv(&henv);               CK_RT(rc);               rc = SQLAllocConnect(henv, &hdbc);               CK_RT(rc);               rc = SQLDriverConnect(hdbc,                         NULL,                         (unsigned char *)dsnStr,                         strlen(dsnStr),                         rtnDSN,                         255,                         &rtnLen,                         SQL_DRIVER_NOPROMPT);               CK_RT(rc);               SQLDisconnect(hdbc);               SQLFreeConnect(hdbc);               SQLFreeEnv(henv);	   }   }				
قطع الاتصال بالذاكرة الظاهرية تسرب أوراكل mtxdm.dll odbc اتصال تجميع اكسيتبروسيس 1 ميغا بايت 2320

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

خصائص

رقم الموضوع: 232351 - آخر مراجعة: 01/10/2015 11:59:45 - المراجعة: 5.0

  • kbnosurvey kbarchive kbqfe kbhotfixserver kbbug kbfix kbmdac210fix kbmts200fix kbsdkodbc351fix kbvirtualmem kbmt KB232351 KbMtar
تعليقات