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

Traduceri articole Traduceri articole
ID articol: 232351
Măriți totul | Reduceți totul

În această pagină

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 repetare prin bucla.

Acest lucru este cel mai probabil să apară în aplicații care utilizează o ODBC conexiuni sunt de luare conexiuni repetate și deconectare din baza acoperire de date backend, sau în aplica?ii ODBC care face mai multe conexiuni și deconectari la un backend de Oracle.

CAUZĂ

Scurgere în memorie 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 pentru a gestiona conexiune piscina, care este gestionată de un fir de lucrătorul care este început în 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 alocat pentru stivă firul de lucrător.

Acest același comportament poate fi văzut atunci când se face conexiuni repetate și deconectare de 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 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 software individuale, contactați serviciile de asistență a produselor Microsoft. Pentru o listă completă a numerelor de telefon serviciilor de asistență 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:
http://support.Microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Windows NT Server sau Workstation 4.0

Pentru a rezolva această problemă, obține 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:
  • Windows pachet Service Pack Center- sau -

  • 152734cum se obține ultimul pachet de service windows nt 4.0
Pentru informații despre obținerea actualizarea software individuale, contactați serviciile de asistență a produselor Microsoft. Pentru o listă completă a numerelor de telefon serviciilor de asistență 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:
http://support.Microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Windows NT Server 4.0, Terminal Server Edition

Pentru a rezolva această problemă, obțineți cel mai recent 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 în bază 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 a alerga pentru a extrage fișierele următoare:
    • Mmtxdm.dll
    • Readme.txt
  3. Găsiți și redenumiți-versiunea curentă de Mtxdm.dll, care ar trebui să fie în folderul \Winnt\System32 pentru computerele Windows NT, precum ș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 următorul cod. Rula această aplicație în marcă de timp ce utilizați Performance Monitor pentru a vizualiza octeți Virtual 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);
	   }
   }
				

Proprietă?i

ID articol: 232351 - Ultima examinare: 13 iunie 2012 - Revizie: 3.0
Cuvinte cheie: 
kbqfe kbhotfixserver kbbug kbfix kbmdac210fix kbmts200fix kbsdkodbc351fix kbvirtualmem kbmt KB232351 KbMtro
Traducere automată
IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, si nu de un traducător. Microsoft vă oferă atât articole traduse de persoane, cât și articole traduse automat, astfel incat aveti access la toate articolele din Baza noastră de informatii în limba dvs. materna. Totuși, un articol tradus automat nu este întotdeauna perfect. Acesta poate conține greșeli de vocabular, sintaxă sau gramatică, la fel cum un vorbitor străin poate face greșeli vorbind limba dvs. materna. Compania Microsoft nu este responsabilă pentru nici o inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conținutului sau de utilizarea traducerii necorespunzătoare de către clienții nostri. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 232351

Trimite?i feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com