FIXA: Repetate de încărcare şi descărcare de Mtxdm.dll cauzele 1 MB memorie virtuală scurgere

IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată și poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate și articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cunoștințe în mai multe limbi. Articolele traduse automat și post-editate pot conține greșeli de vocabular, sintaxă și/sau gramatică. Microsoft nu este responsabil de inexactitățile, erorile sau daunele cauzate de traducerea greșită a conținutului sau de utilizarea acestuia de către clienți. Găsiți mai multe informații despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.

232351
Acest articol a fost arhivat. Articolul este oferit „ca atare” şi nu va mai fi actualizat.
Simptome
Atunci când încărcarea și descărcarea Mtxdm.dll într-o buclă, o scurgere de 1 MB din memoria virtuală este văzută cu fiecare iteraţie prin bucla.

Acesta este cel mai probabil să apară în aplicaţiile care utilizează o ODBC conexiuni sunt de luare conexiuni repetate şi deconectari din baza acoperire de date backend, sau în aplicații ODBC care fac multe conexiuni şi deconectari la un backend de Oracle.
Cauză
Scurgere în memoria virtuală este cauzată de un apel sosit la TerminateThread() în Mtxdm.dll.

Atunci când se utilizează conexiuni într-o aplicaţie ODBC, Dispenser Manager (Mtxdm.dll) este încărcată să gestioneze conexiunea piscina, care este tratată de către un lucrător fir care este iniþiat în interval Mtxdm.dll.

Atunci când cererea se termină, firul de lucrător este ucis de un apel sosit la TerminateThread(), care nu va curăţa şi drum liber 1 MB de memorie alocate pentru teanc de firul de lucrător.

Acest acelaşi comportament poate fi văzut atunci când se face conexiuni repetate şi deconectari la un server de baze acoperire de date Oracle, deoarece driverul Microsoft Oracle ODBC încarcă Mtxdm.dll dacă conexiuni este utilizat sau nu.
Rezoluţie
Pentru a rezolva această problemă, obţineţi ultimul pachet Service Pack pentru Windows NT 4.0 sau actualizarea software-ul individuale. Pentru informaţii despre obţinerea ultimul pachet de service, vă rugăm să mergeţi la:
Pentru informaţii despre obţinerea actualizarea programului individuale, contactaţi serviciile de asistenţă a produselor Microsoft. Pentru o listă completă a numerelor de telefon serviciile de suport pentru produse Microsoft şi informații privind costurile de suport, vă rugăm să mergeţi la următoarea adresă de pe World Wide Web:

Windows NT Server sau Workstation 4.0

Pentru a rezolva această problemă, obţineţi ultimul pachet Service Pack pentru Windows NT 4.0 sau actualizarea software-ul individuale. Pentru informaţii despre obţinerea ultimul pachet de service, vă rugăm să mergeţi la:
Pentru informaţii despre obţinerea actualizarea programului individuale, contactaţi serviciile de asistenţă a produselor Microsoft. Pentru o listă completă a numerelor de telefon serviciile de suport pentru produse Microsoft şi informații privind costurile de suport, vă rugăm să mergeţi la următoarea adresă de pe World Wide Web:

Windows NT Server 4.0, terminale Server Edition

Pentru a rezolva această problemă, obţineţi ultimul pachet Service Pack pentru Windows NT Server 4.0, Terminal Server Edition. Pentru informaţii suplimentare, faceţi clic pe următorul număr de articol pentru a vedea articolul înbază de cunoştinţe Microsoft:
152734 Cum se obţine ultimul pachet de Service Windows NT 4.0

Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate la începutul acestui articol. Această problemă a fost corectată în primul rând în Server Windows NT versiunea 4.0, Terminal Server Edition pachet Service Pack 6.

MAI MULTE INFORMAŢII

Manual de instalare a remedierilor rapide 051099a

Notă: Pentru A obţine această remediere rapidă, trebuie să contactaţi Microsoft Product Support Services. Vă rugăm să consultaţi secţiunea de REZOLUȚIA din acest articol pentru mai multe informaţii.
  1. Închideţi sau opri orice cereri sau consolidare servicii care utilizează Mtxdm.dll. Acest lucru poate include Internet Information Server (IIS), Microsoft Transaction Server (MTS), coordonatorul de tranzacții Microsoft distribuite (DTC) şi orice aplicaţii ADO sau ODBC.
  2. Descărcaţi această remediere rapidă (051099a.exe) într-un director temporar şi rulaţi-l pentru a extrage fişierele următoare:
    • Mmtxdm.dll
    • Readme.txt
  3. Localizaţi şi redenumi versiunea curentă a Mtxdm.dll, care ar trebui să fie în folderul \Winnt\System32 pentru computerele Windows NT şi în folderul \Windows\System pentru computerele Windows 9 x.
  4. Copiaţi versiunea de remediere rapidă a Mtxdm.dll în aceeaşi locaţie, şi reporniţi dvs. de consolidare servicii și aplicații.

Paşi pentru a Reproduce comportament

Crea o aplicaţie consolă de C/C++ folosind urmatorul cod. Rula această aplicaţie în marcă de timp ce utilizaţi Performance Monitor pentru a vizualiza Virtual Bytes de aplicare.

Notă: această mostră de cod utilizează o sursă acoperire de date ODBC care se conectează la un backend Oracle, deoarece driverul Microsoft Oracle ODBC încarcă Mtxdm.dll şi mai mult cu uşurinţă demonstrează problema.
   #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);	   }   }				
memorie virtuală scurgere oracle mtxdm.dll odbc conexiune grupării exitprocess deconectaţi 1 MB 2320

Warning: This article has been translated automatically

Proprietăți

ID articol: 232351 - Ultima examinare: 01/10/2015 11:59:52 - Revizie: 6.0

  • kbnosurvey kbarchive kbqfe kbhotfixserver kbbug kbfix kbmdac210fix kbmts200fix kbsdkodbc351fix kbvirtualmem kbmt KB232351 KbMtro
Feedback