การแก้ไข: โหลดซ้ำและยกเลิกการโหลดของ Mtxdm.dll การรั่วไหลหน่วยความจำเสมือนของสาเหตุที่ 1 เมกะไบต์

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

232351
บทความนี้ถูกเก็บถาวรแล้วเนื้อหาของบทความจึงถูกนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก
อาการ
เมื่อโหลด และการโหลด Mtxdm.dll ภายในแบบวนซ้ำ ความรั่วไหล 1 เมกะไบต์ในหน่วยความจำเสมือนจะเห็นสถานะ มีการคำนวณซ้ำทุกผ่านลูป

นี้มักจะเกิดขึ้นในโปรแกรมประยุกต์ ที่ใช้การเชื่อมต่อ ODBC การทำซ้ำการเชื่อมต่อและ disconnections จากฐานข้อมูล backend หรือโปรแกรมประยุกต์ ODBC ที่ทำการเชื่อมต่อและ disconnections การ backend Oracle เป็นจำนวนมาก
สาเหตุ
กำลังเกิดรั่วไหลในหน่วยความจำเสมือน โดยการเรียกการ TerminateThread() ภายใน Mtxdm.dll

เมื่อเชื่อมต่อร่วมกันถูกใช้ภายในโปรแกรมประยุกต์ ODBC, Dispenser ผู้จัดการ (Mtxdm.dll) ถูกโหลดการจัดการประเภทการเชื่อมต่อ ซึ่งถูกจัดการ โดยเธรดของผู้ปฏิบัติงานที่เริ่มต้นใช้งานภายใน Mtxdm.dll

เมื่อแอพลิเคชันสิ้นสุด เป็น killed เธรดของผู้ปฏิบัติงาน โดยมีการเรียกไปยัง TerminateThread() ซึ่งจะล้างข้อมูล และว่าง 1 เมกะไบต์ของหน่วยความจำที่ปันส่วนสำหรับการกองซ้อนของเธรดคนงาน

ลักษณะการทำงานเดียวกันนี้สามารถมองเห็นได้เมื่อทำการเชื่อมต่อซ้ำและ disconnections กับเซิร์ฟเวอร์ฐานข้อมูล Oracle เนื่องจากโปรแกรมควบคุม Microsoft Oracle ODBC โหลด Mtxdm.dll ว่า การเชื่อมต่อถูกใช้ หรือไม่
การแก้ไข
เมื่อต้องแก้ไขปัญหานี้ ขอรับ service pack ล่าสุดสำหรับ Windows NT 4.0 หรือการปรับปรุงซอฟต์แวร์แต่ละราย สำหรับข้อมูลในการขอรับ service pack ล่าสุด โปรดไปที่:
สำหรับข้อมูลที่ได้รับการปรับปรุงซอฟต์แวร์แต่ละราย ติดต่อบริการสนับสนุนผลิตภัณฑ์ของ Microsoft สำหรับรายการทั้งหมดของหมายเลขโทรศัพท์ของบริการการสนับสนุนผลิตภัณฑ์ของ Microsoft และข้อมูลเกี่ยวกับต้นทุนสนับสนุน โปรดไปยังอยู่ดังต่อไปนี้บนเวิลด์ไวด์เว็บ:

Windows NT Server หรือเวิร์กสเตชัน 4.0

เมื่อต้องแก้ไขปัญหานี้ ขอรับ service pack ล่าสุดสำหรับ Windows NT 4.0 หรือการปรับปรุงซอฟต์แวร์แต่ละราย สำหรับข้อมูลในการขอรับ service pack ล่าสุด โปรดไปที่:
สำหรับข้อมูลที่ได้รับการปรับปรุงซอฟต์แวร์แต่ละราย ติดต่อบริการสนับสนุนผลิตภัณฑ์ของ Microsoft สำหรับรายการทั้งหมดของหมายเลขโทรศัพท์ของบริการการสนับสนุนผลิตภัณฑ์ของ Microsoft และข้อมูลเกี่ยวกับต้นทุนสนับสนุน โปรดไปยังอยู่ดังต่อไปนี้บนเวิลด์ไวด์เว็บ:

เซิร์ฟเวอร์ Windows NT 4.0, Edition Server เทอร์มินัล

เมื่อต้องแก้ไขปัญหานี้ ขอรับ service pack ล่าสุดสำหรับ Windows NT Server 4.0, Edition Server เทอร์มินัล สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในการMicrosoft Knowledge Base:
152734 วิธีการขอรับ Service Pack ล่าสุดของ Windows NT 4.0

สถานะ
Microsoft ยืนยันว่า ปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในตอนต้นของบทความนี้ ปัญหานี้ได้ถูกแก้ไขครั้งแรกในเซิร์ฟเวอร์ Windows NT เวอร์ชั่น 4.0 เทอร์มินัลเซิร์ฟเวอร์รุ่น Service Pack 6

ข้อมูลเพิ่มเติม

การติดตั้งโปรแกรมแก้ไขด่วน 051099a ด้วยตนเอง

หมายเหตุ: เมื่อต้องการขอรับโปรแกรมแก้ไขด่วนนี้ คุณต้องติดต่อบริการสนับสนุนผลิตภัณฑ์ของ Microsoft โปรดดูส่วนการแก้ปัญหาของบทความนี้สำหรับข้อมูลเพิ่มเติม
  1. ปิด หรือหยุดโปรแกรมประยุกต์หรือบริการที่กำลังใช้ Mtxdm.dll ใดก็ ซึ่งอาจรวมถึงเซิร์ฟเวอร์ข้อมูลทางอินเทอร์เน็ต (IIS), เซิร์ฟเวอร์ธุรกรรม Microsoft (MTS), Microsoft แจกจ่ายธุรกรรมผู้ประสานงาน (DTC), และโปรแกรมประยุกต์ ADO หรือ ODBC ใด ๆ
  2. ดาวน์โหลดโปรแกรมแก้ไขด่วน (051099a.exe) ลงในไดเรกทอรีชั่วคราว และเรียกใช้งานเมื่อต้องขยายแฟ้มต่อไปนี้:
    • Mmtxdm.dll
    • อ่าน Readme.txt
  3. ค้นหา และเปลี่ยนชื่อเป็น Mtxdm.dll ซึ่งควรอยู่ ในโฟลเดอร์ \Winnt\System32 สำหรับคอมพิวเตอร์ที่ใช้ Windows NT และ ในโฟลเดอร์ \Windows\System สำหรับคอมพิวเตอร์ 9 x Windows รุ่นปัจจุบัน
  4. การคัดลอกโปรแกรมแก้ไขด่วนรุ่น Mtxdm.dll ลงในตำแหน่งที่ตั้งเดียวกัน และเริ่มการทำงานของบริการและโปรแกรมประยุกต์

ขั้นตอนในการทบทวนเกิดลักษณะการทำงาน

สร้างโปรแกรมประยุกต์คอนโซล C/c ++ที่ใช้รหัสดังต่อไปนี้ เรียกใช้โปรแกรมประยุกต์นี้ในขณะที่ใช้ตัวตรวจสอบประสิทธิภาพการทำงานเมื่อต้องดูไบต์เสมือนสำหรับแอพลิเคชัน

หมายเหตุ: โค้ดตัวอย่างนี้ใช้แหล่งข้อมูล ODBC ที่เชื่อมต่อกับการ backend 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);	   }   }				
หน่วยความจำเสมือนรั่ว oracle mtxdm.dll odbc เชื่อมต่อทำพูลเก็บ exitprocess 1 เมกะไบต์ 2320 การตัดการเชื่อมต่อ

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 232351 - การตรวจสอบครั้งสุดท้าย: 01/10/2015 11:59:53 - ฉบับแก้ไข: 5.0

  • kbnosurvey kbarchive kbqfe kbhotfixserver kbbug kbfix kbmdac210fix kbmts200fix kbsdkodbc351fix kbvirtualmem kbmt KB232351 KbMtth
คำติชม