REVISIÓN: Infracción de acceso al cerrar el objeto Recordset de ADO en aplicaciones multiproceso

Seleccione idioma Seleccione idioma
Id. de artículo: 272373 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Al ejecutar código multiproceso de ActiveX Data Objects (ADO) bajo carga alta en un equipo multiprocesador, puede producirse una infracción de acceso (AV) al cerrar un objeto Recordset de ADO. Examen de la pila de llamadas al tiempo de AV (con símbolos de depuración apropiados instalado) revela que la última llamada de ADO en la pila es una llamada a msado15 de función interna ADO! CCollectionArray__Delete.

Solución

Este problema se corrigió en los service Pack más recientes para Microsoft Windows 2000, MDAC 2.5 y MDAC 2.6 y en la versión 2.7 de MDAC.
  • Para resolver este problema, obtenga el Service Pack más reciente de Windows 2000. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    260910Cómo obtener el Service Pack más reciente para Windows 2000
  • Para resolver este problema, obtenga el service pack más reciente para Microsoft Data Access Components 2.5. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    293312INFO: Cómo obtener la más reciente de MDAC 2.5 Service Pack
  • Para resolver este problema, obtenga el service pack más reciente para Microsoft Data Access Components 2.6. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
    300635INFO: Cómo obtener la más reciente de MDAC 2.6 Service Pack

revisión

La versión en inglés de esta revisión tener los atributos de archivo siguientes o posteriores:
   Date         Version       Size      File name     Platform
   -----------------------------------------------------------
   09/15/2000   2.51.5715.0   487,696   Msado15.dll   x86 
				

Solución

Evitar cerrar un objeto Recordset de ADO y su objeto de conexión de ADO primario exactamente al mismo tiempo en distintos 2 subprocesos, o aplicar este hotfix.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:" de este artículo. Este problema se corrigió por primera vez en Microsoft Data Access Components (MDAC) 2.5 Service Pack 2, Service Pack 1 de MDAC 2.6, MDAC 2.7 y Microsoft Windows 2000 Service Pack 2.

Más información

Para reproducir el problema, su principal conexión de ADO y un objeto Recordset de ADO deben ser cerrados o publicaron 2 distintos subprocesos al mismo tiempo. Tenga en cuenta que este problema sólo ha ha reproducido correctamente en un equipo multiprocesador.

Se descubrió el problema inicial mediante las clases de Java de ADO de Windows Foundation Classes (WFC) en una aplicación COM + bajo cargas pesadas con ADO en modo de subprocesamiento libre. La máquina virtual de Microsoft (Microsoft VM) se pospone la versión de los objetos COM hasta que el recolector de elementos no utilizados está activado. Además, el recolector de elementos no utilizados realiza la versión del objeto COM en un subproceso en segundo plano. Si cierra una conexión de ADO de WFC, esto coloca el puntero de interfaz de conexión de ADO COM en una lista de punteros para futura limpieza por el recolector de elementos no utilizados. Si el código de aplicación principal posteriormente cierra un objeto Recordset de ADO exactamente al mismo tiempo que el subproceso de fondo del recolector de elementos no utilizados libera su puntero de interfaz ADO Connection principal, puede producirse el va.

Propiedades

Id. de artículo: 272373 - Última revisión: viernes, 07 de abril de 2006 - Versión: 8.1
La información de este artículo se refiere a:
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.5 Service Pack 1
  • Microsoft Data Access Components 2.6
Palabras clave: 
kbmt kbqfe kbhotfixserver kbbug kbfix kbmdac250sp2fix kbmdac260sp1fix KB272373 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 272373

Enviar comentarios

 

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