FIX: Violazione di accesso alla chiusura di Recordset ADO in un'applicazione multithreading

Traduzione articoli Traduzione articoli
Identificativo articolo: 272373 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si esegue codice di ADO (ActiveX Data Objects) multithreading intenso su un computer multiprocessore, una violazione di accesso (AV) pu˛ verificarsi quando la chiusura di un Recordset di ADO. Esame di stack di chiamate al momento del valore MONETARIO (con simboli di debug appropriati installati) rivela che l'ultima chiamata ADO nello stack Ŕ una chiamata a msado15 di funzione interna di ADO! CCollectionArray__Delete.

Risoluzione

Questo problema Ŕ stato risolto nei service pack pi¨ recente per MDAC 2.6, MDAC 2.5 e Microsoft Windows 2000 e in MDAC versione 2.7.
  • Per risolvere questo problema Ŕ necessario ottenere la versione pi¨ recente del service pack per Windows 2000. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
    260910Come ottenere Windows 2000 Service Pack pi¨ recente
  • Per risolvere il problema, ottenere il service pack pi¨ recente per Microsoft Data Access Components 2.5. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
    293312INFORMAZIONI: Come ottenere il pi¨ recente MDAC 2.5 Service Pack
  • Per risolvere il problema, ottenere il service pack pi¨ recente per Microsoft Data Access Components 2.6. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
    300635INFORMAZIONI: Come ottenere il pi¨ recente MDAC 2.6 Service Pack

Hotfix

La versione inglese di questa correzione rapida per avere i seguenti attributi di file o versioni successive:
   Date         Version       Size      File name     Platform
   -----------------------------------------------------------
   09/15/2000   2.51.5715.0   487,696   Msado15.dll   x86 
				

Workaround

Evitare la chiusura di un Recordset di ADO e l'oggetto ADO Connection padre contemporaneamente esattamente su thread diversi 2 o applicare questo aggiornamento rapido (hotfix).

Status

Microsoft ha confermato che questo problema riguarda i prodotti Microsoft elencati all'inizio di questo articolo. Questo problema Ŕ stato innanzitutto corretto in Microsoft Data Access Components (MDAC) 2.5 Service Pack 2, Service Pack 1 di MDAC 2.6, MDAC 2.7 e Microsoft Windows 2000 Service Pack 2.

Informazioni

Per riprodurre il problema, un Recordset di ADO e ADO Connection padre deve essere chiuso o rilasciati 2 thread di diversi esattamente contemporaneamente. Si noti che questo problema Ŕ solo stato correttamente riprodotto su un computer multiprocessore.

Utilizzando le classi WFC (Windows Foundation Classes) ADO Java in un'applicazione COM + in situazioni con ADO impostato sulla modalitÓ a thread libero Ŕ stato rilevato il problema iniziale. Microsoft virtual machine (Microsoft VM) rinvia il rilascio di oggetti COM finchÚ non viene attivato il garbage collector. Inoltre, il garbage collector esegue il rilascio dell'oggetto COM su un thread in background. Se si chiude una connessione di ADO WFC, in questo modo il puntatore di interfaccia di connessione ADO COM in un elenco di puntatori per future operazioni di pulitura dal garbage collector. Se il codice dell'applicazione principale, successivamente, chiude un Recordset di ADO contemporaneamente esattamente che il thread in background garbage collector rilascia il puntatore di interfaccia ADO Connection padre, Ŕ possibile che il valore MONETARIO.

ProprietÓ

Identificativo articolo: 272373 - Ultima modifica: venerdý 7 aprile 2006 - Revisione: 8.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.5 Service Pack 1
  • Microsoft Data Access Components 2.6
Chiavi:á
kbmt kbqfe kbhotfixserver kbbug kbfix kbmdac250sp2fix kbmdac260sp1fix KB272373 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: 272373
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