FIX: Carico ripetuto e lo scaricamento di perdita di memoria virtuale Mtxdm. dll causa 1 MB

Traduzione articoli Traduzione articoli
Identificativo articolo: 232351
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Durante il caricamento e scaricamento Mtxdm. dll all'interno di un ciclo, si verifica una perdita di 1 MB di memoria virtuale a ogni iterazione del ciclo.

Questo Ŕ pi¨ probabile che si verificano in applicazioni che utilizzano un pool di connessioni ODBC ed effettuano ripetute connessioni e disconnessioni dal database back-end o le applicazioni ODBC che molte connessioni e disconnessioni per un back-end di Oracle.

Cause

La perdita di memoria virtuale Ŕ provocata da una chiamata a TerminateThread() all'interno di Mtxdm. dll.

Quando il pool di connessioni viene utilizzato all'interno di un'applicazione ODBC, il gestore Dispenser (Mtxdm. dll) viene caricato per gestire il pool di connessioni viene gestito da un thread di lavoro viene avviato entro Mtxdm. dll.

Al termine dell'applicazione, il thread di lavoro sia stata interrotta da una chiamata a TerminateThread(), che non consente di pulire e liberare 1 MB di memoria allocata per stack del thread di lavoro.

Questo stesso comportamento pu˛ essere visualizzato quando si effettuano ripetute connessioni e disconnessioni a un server di database Oracle, perchÚ il driver Microsoft Oracle ODBC carica Mtxdm. dll se il pool di connessioni Ŕ in uso o non.

Risoluzione

Per risolvere il problema, ottenere il service pack pi¨ recente per Windows NT 4.0 o il singolo aggiornamento software. Per informazioni su come ottenere il service pack pi¨ recente, visitare:
Per informazioni su come ottenere il singolo aggiornamento software, contattare il servizio supporto tecnico clienti Microsoft. Per un elenco completo dei numeri di telefono del servizio supporto tecnico clienti Microsoft e informazioni sui costi di assistenza, visitare il seguente indirizzo sul World Wide Web:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Windows NT Server o Workstation 4.0

Per risolvere il problema, ottenere il service pack pi¨ recente per Windows NT 4.0 o il singolo aggiornamento software. Per informazioni su come ottenere il service pack pi¨ recente, visitare:
  • Centro di Windows Service Pack- oppure -

  • della 152734come ottenere il service pack pi¨ recente per windows nt 4.0
Per informazioni su come ottenere il singolo aggiornamento software, contattare il servizio supporto tecnico clienti Microsoft. Per un elenco completo dei numeri di telefono del servizio supporto tecnico clienti Microsoft e informazioni sui costi di assistenza, visitare il seguente indirizzo sul World Wide Web:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Windows NT Server 4.0, Terminal Server Edition

Per risolvere il problema, procurarsi il service pack pi¨ recente per Windows NT Server 4.0, Terminal Server Edition. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare il corrispondente articolo della Articolo della Microsoft Knowledge Base:
della 152734 Come ottenere il Service Pack pi¨ recente di Windows NT 4.0

Status

Microsoft ha confermato che si tratta di un problema con i prodotti elencati all'inizio di questo articolo. Questo problema Ŕ stato risolto in Windows NT Server versione 4.0, Terminal Server Edition Service Pack 6.

ULTERIORI INFORMAZIONI

Installazione manuale di Hotfix 051099a

Nota: Per ottenere questo hotfix, Ŕ necessario contattare Microsoft Product Support Services. Vedere la sezione Risoluzione di questo articolo per ulteriori informazioni.
  1. Chiudere o interrompere tutte le applicazioni o servizi che utilizzano Mtxdm. dll. Potrebbe trattarsi di Internet Information Server (IIS), Microsoft Transaction Server (MTS), Microsoft Distributed Transaction Coordinator (DTC) e tutte le applicazioni ADO o ODBC.
  2. Scaricare l'aggiornamento rapido (051099a.exe) in una directory temporanea ed eseguirlo per estrarre i file seguenti:
    • Mmtxdm.dll
    • Readme. txt
  3. Individuare e rinominare la versione corrente di Mtxdm. dll, che dovrebbe trovarsi nella cartella \Winnt\System32 nei computer Windows NT e nella cartella \Windows\System nei computer Windows 9x.
  4. Copiare la versione hotfix di Mtxdm. dll nella stessa posizione e riavviare i servizi e applicazioni.

Procedura per riprodurre il comportamento

Creare un'applicazione di console di C/C++ mediante il codice riportato di seguito. Eseguire l'applicazione durante l'utilizzo di Performance Monitor per visualizzare i byte virtuali per l'applicazione.

Nota: questo codice di esempio utilizza un'origine dati ODBC che si connette a un back-end Oracle, perchÚ il driver Microsoft Oracle ODBC carica Mtxdm. dll e viene illustrato pi¨ facilmente il 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Ó

Identificativo articolo: 232351 - Ultima modifica: mercoledý 13 giugno 2012 - Revisione: 3.0
Chiavi:á
kbqfe kbhotfixserver kbbug kbfix kbmdac210fix kbmts200fix kbsdkodbc351fix kbvirtualmem kbmt KB232351 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 232351
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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