OPRAVIŤ: Opakované načítať alebo odstrániť Mtxdm.dll spôsobuje 1 MB virtuálnej pamäte netesnosti

Preklady článku Preklady článku
ID článku: 232351
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

PRIZNAKY

Pri nakladaní a vykladaní Mtxdm.dll do slučky, 1 MB únik na virtuálnej pamäte je vidieť s každý iteráciu cez slučku.

To je najpravdepodobnejší výskyt v aplikáciách, ktoré používajú združovanie pripojení ODBC a robia opakované pripojenia a odpojenia z backend databázy alebo ODBC žiadostí, ktoré robí veľa pripojenia a odpojenia na Oracle backend.

PRICINA

Únik na virtuálnej pamäte je spôsobenému hovor TerminateThread() do Mtxdm.dll.

Keď združovanie pripojení používa v aplikácii ODBC, rozprašovač Manager (Mtxdm.dll) je naložený na riadenie pripojenia bazén, ktorý má na starosti vláknu, ktorý sa začal v Mtxdm.dll.

Ak uplatňovanie skončí, vláknu je zabitý volanie TerminateThread(), ktorý nebude vyčistiť a voľný 1 MB pamäť vyhradená vláknu zásobníka.

Toto rovnaké správanie možno vidieť pri opakovanom pripojenia a odpojenia na databázovom serveri Oracle, pretože ovládač ODBC spoločnosti Microsoft Oracle načíta Mtxdm.dll či združovanie pripojení používa alebo nie.

RIESENIE

Ak chcete vyriešiť tento problém, získať najnovší balík service pack pre systém Windows NT 4.0 alebo jednotlivé softvérové aktualizácie. Informácie o získaní najnovšej aktualizácie service pack, nájdete na:
Informácie o získaní jednotlivé softvérové aktualizácie, obráťte sa na služby technickej podpory produktu spoločnosti Microsoft. Úplný zoznam telefónnych čísiel služby technickej podpory spoločnosti Microsoft a informácie o náklady na technickú podporu, prosím, choďte na túto adresu na World Wide Web:
http://support.Microsoft.com/default.aspx?scid=FH;EN-US;CNTACTMS

Systém Windows NT Server alebo Workstation 4.0

Ak chcete vyriešiť tento problém, získať najnovší balík service pack pre systém Windows NT 4.0 alebo jednotlivé softvérové aktualizácie. Informácie o získaní najnovšej aktualizácie service pack, nájdete na:
  • Windows Service Pack Center- alebo -

  • 152734ako získať najnovší balík service pack pre systém windows nt 4.0
Informácie o získaní jednotlivé softvérové aktualizácie, obráťte sa na služby technickej podpory produktu spoločnosti Microsoft. Úplný zoznam telefónnych čísiel služby technickej podpory spoločnosti Microsoft a informácie o náklady na technickú podporu, prosím, choďte na túto adresu na World Wide Web:
http://support.Microsoft.com/default.aspx?scid=FH;EN-US;CNTACTMS

Systém Windows NT Server 4.0 Terminal Server Edition

Chcete vyriešiť tento problém, Získajte najnovší balík service pack pre systém Windows NT Server 4.0 Terminal Server Edition. Ďalšie informácie získate po kliknutí na nasledovné číslo článku publikovaného v Databázy Microsoft Knowledge Base:
152734 Ako získať najnovší balík Service Pack pre systém Windows NT 4.0

STAV

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené na začiatku tohto článku. Tento problém bol opravený v systéme Windows NT Server verzie 4.0 Terminal Server Edition Service Pack 6.

ĎALŠIE INFORMÁCIE

Manuálna inštalácia rýchlej opravy 051099a

Poznámka: Ak chcete získať túto rýchlu opravu, musí kontaktovať služby technickej podpory spoločnosti Microsoft. Nájdete v časti riešenie tento článok pre viac informácií.
  1. Zavrieť alebo ukončiť všetky aplikácie alebo služby, ktoré používajú Mtxdm.dll. Toto môže zahŕňať Internet Information Server (IIS), Microsoft transakcie Server (MTS), Microsoft distribuované transakcie Koordinátor DTC () a všetky POVYKU alebo ODBC aplikácie.
  2. Stiahnuť rýchlu opravu (051099a.exe) do dočasného adresára a spustiť ho chcete extrahovať nasledovné súbory:
    • Mmtxdm.dll
    • Readme.txt
  3. Vyhľadajte a premenujte aktuálnu verziu Mtxdm.dll, ktorá by mala byť v priečinku \Windows\System32 pre systém Windows NT počítače a v priečinku \Windows\System počítačov so systémom Windows 9 x.
  4. Skopírujte rýchlu opravu verzia Mtxdm.dll do toho istého miesta a reštartujte služby a aplikácie.

Kroky na reprodukovanie správanie

Vytvoriť c a c ++ konzolovú aplikáciu pomocou nasledujúci kód. Spustenie tejto aplikácie pri používaní programu Sledovanie výkonu zobrazíte virtuálne bajtov pre aplikáciu.

Poznámka: táto vzorka kódu používa zdroj údajov ODBC, ku ktorej sa pripája Oracle backend, pretože ovládač ODBC spoločnosti Microsoft Oracle načíta Mtxdm.dll a viac ľahko dokazuje problém.
   #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);
	   }
   }
				

Vlastnosti

ID článku: 232351 - Posledná kontrola: 13. júna 2012 - Revízia: 2.0
Kľúčové slová: 
kbqfe kbhotfixserver kbbug kbfix kbmdac210fix kbmts200fix kbsdkodbc351fix kbvirtualmem kbmt KB232351 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 232351

Odošlite odozvu

 

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