REVISIÓN: Se produce una pérdida de memoria cuando se utiliza el procedimiento almacenado sp_OAMethod o el procedimiento de sp_OAGetProperty almacenado para llamar a un método de un objeto COM en SQL Server 2005

Microsoft distribuye correcciones de Microsoft SQL Server 2005 como un archivo descargable. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la versión anterior de SQL Server 2005.
Este artículo describe lo siguiente acerca de esta versión de hotfix:
  • Los problemas corregidos por el paquete de hotfix
  • Los requisitos previos para instalar el paquete de hotfix
  • Si debe reiniciar el equipo después de instalar el paquete de hotfix
  • Si el paquete de revisiones queda reemplazado por otro paquete de hotfix
  • Si debe hacer algún cambio el registro
  • Los archivos que están contenidos en el paquete de hotfix

Síntomas

En Microsoft SQL Server 2005, cuando se llama a un método de un componente (COM) del modelo de objeto mediante el procedimiento almacenado sp_OAMethod o el procedimiento de sp_OAGetProperty almacenado, se produce una pérdida de memoria. Para el procedimiento almacenado sp_OAMethod , este problema se produce si el método devuelve el resultado en el parámetro de salida del método. El procedimiento de sp_OAGetProperty almacenado, este problema se produce si el procedimiento almacenado devuelve un valor de propiedad en el parámetro de salida .

Además, si la región de la memoria agota el búfer no grupo de pérdidas de la memoria, el mensaje de error siguiente se graba en el archivo de registro de errores de SQL Server:
2008-05-01 08:35:07.80 spid535 degradar backup búferes de registro de 1024 KB a 64 K
spid77 de 09:35:22.55 de 2008-05-06 error Virtual asignar Bytes: FAIL_VIRTUAL_RESERVE 1048576
2008-05-06 10:48:04.85 spid593 Error: 701, gravedad: 17, estado: 123.
spid593 de 10:48:04.85 de 2008-05-06 allí es memoria de sistema insuficiente para ejecutar esta consulta.

Causa

Este problema se produce porque SQL Server 2005 no libera la memoria que se asigna a la variable que contiene el valor del parámetro de salida.

Solución

Información de actualización acumulativa

En primer lugar, la corrección para este problema se publicó en actualización acumulativa 2. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2005 Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
Paquete 2 de actualización de 936305 acumulativa para SQL Server 2005 Service Pack 2
Nota: Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la versión anterior de SQL Server 2005. Microsoft recomienda que considere la posibilidad de aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:
937137 el SQL Server 2005 crea que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 2
Las revisiones de Microsoft SQL Server 2005 se crean para determinados service Pack de SQL Server. Debe aplicar un hotfix de SQL Server 2005 Service Pack 2 a una instalación de SQL Server 2005 Service Pack 2. De forma predeterminada, cualquier hotfix suministrada en un service pack de SQL Server se incluye en el próximo service pack de SQL Server.

Información de la revisión

Existe un hotfix disponible desde Microsoft. Sin embargo, esta revisión se diseñó para corregir únicamente el problema que se describe en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Esta revisión podría ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a la próxima actualización de software que contenga este hotfix.

Si la revisión está disponible para su descarga, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si esta sección no aparece, póngase en contacto con el servicio al cliente de Microsoft y soporte técnico para obtener la revisión.

Nota: Si se producen problemas adicionales o si se requiere cualquier otra solución, será necesario crear una solicitud de revisión independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no califican para esta revisión específica. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:Nota: El formulario de "Descarga de Hotfix disponible" muestra los idiomas para los que el Hotfix está disponible. Si no ve su idioma, es porque no hay una revisión para ese idioma.

Requisitos previos

Debe tener instalado para poder aplicar esta revisión de Microsoft SQL Server 2005 Service Pack 1 (SP1).

Para obtener más información acerca de cómo obtener SQL Server 2005 Service Pack 1, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

913089 cómo obtener el service pack más reciente para SQL Server 2005

Información de reinicio

No es necesario que reinicie el equipo después de aplicar este hotfix.

Información del registro

No es necesario cambiar el registro.

Información de archivo de hotfix

Este hotfix contiene sólo los archivos necesarios para corregir los problemas que se enumera en este artículo. Este hotfix no puede contener todos los archivos que debe tener para actualizar plenamente un producto a la compilación más reciente. Versión del inglés de esta revisión tiene los atributos de archivo (o atributos de último archivo) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha zona horaria en el elemento fecha y hora del Panel de Control.
Versión SQL Server 2005 de 32 bits
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Bcp.exe2005.90.2232.069,48809-May-200719:36x86
Databasemailengine.dll9.0.2232.075,12009-May-200719:36x86
Logread.exe2005.90.2232.0400,75209-May-200719:37x86
Microsoft.analysisservices.adomdclient.dll9.0.2232.0546,16009-May-200719:37x86
Microsoft.analysisservices.deploymentengine.dll9.0.2232.0140,65609-May-200719:37x86
Microsoft.analysisservices.dll9.0.2232.01,217,90409-May-200719:37x86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2232.078,19209-May-200719:37x86
Microsoft.sqlserver.sqlenum.dll9.0.2232.0910,70409-May-200719:37x86
Msasxpress.dll9.0.2232.024,94409-May-200719:37x86
Msgprox.dll2005.90.2232.0200,56009-May-200719:37x86
Msmdlocal.dll9.0.2232.015,646,06409-May-200719:37x86
Msmdredir.dll9.0.2232.03,993,96809-May-200719:37x86
Odsole70.dll2005.90.2232.059,76009-May-200719:37x86
Qrdrsvc.exe2005.90.2232.0369,52009-May-200719:37x86
Rdistcom.dll2005.90.2232.0643,44009-May-200719:37x86
Repldp.dll2005.90.2232.0187,24809-May-200719:37x86
Replmerg.exe2005.90.2232.0320,88009-May-200719:37x86
Replprov.dll2005.90.2232.0550,25609-May-200719:37x86
Replrec.dll2005.90.2232.0784,75209-May-200719:37x86
Replsub.dll2005.90.2232.0407,40809-May-200719:37x86
Spresolv.dll2005.90.2232.0177,00809-May-200719:37x86
Sqlaccess.dll2005.90.2232.0350,57609-May-200719:37x86
Sqlagent90.exe2005.90.2232.0321,39209-May-200719:37x86
Sqlservr.exe2005.90.2232.028,979,11209-May-200719:37x86
Sqsrvres.dll2005.90.2232.066,41609-May-200719:37x86
Xmlsub.dll2005.90.2232.0195,44009-May-200719:37x86
Xpstar90.dll2005.90.2232.0295,28009-May-200719:37x86
Xpstar90.rll2005.90.2232.0155,50409-May-200719:37x86
Versión x64 de SQL Server 2005
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Bcp.exe2005.90.2232.088,94409-May-200716:46x64
Databasemailengine.dll9.0.2232.075,12009-May-200716:46x86
Logread.exe2005.90.2232.0525,16809-May-200716:46x64
Microsoft.analysisservices.adomdclient.dll9.0.2232.0546,16009-May-200716:46x86
Microsoft.analysisservices.adomdclient.dll9.0.2232.0546,16009-May-200719:37x86
Microsoft.analysisservices.deploymentengine.dll9.0.2232.0140,65609-May-200719:37x86
Microsoft.analysisservices.dll9.0.2232.01,217,90409-May-200719:37x86
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2232.094,06409-May-200716:46x64
Microsoft.sqlserver.mgdsqldumper.dll2005.90.2232.078,19209-May-200719:37x86
Microsoft.sqlserver.sqlenum.dll9.0.2232.0877,93609-May-200716:46x86
Msasxpress.dll9.0.2232.030,06409-May-200716:46x64
Msasxpress.dll9.0.2232.024,94409-May-200719:37x86
Msgprox.dll2005.90.2232.0262,00009-May-200716:46x64
Msmdlocal.dll9.0.2232.015,646,06409-May-200719:37x86
Msmdredir.dll9.0.2232.03,993,96809-May-200719:37x86
Odsole70.dll2005.90.2232.090,99209-May-200716:46x64
Qrdrsvc.exe2005.90.2232.0434,03209-May-200716:46x64
Rdistcom.dll2005.90.2232.0836,46409-May-200716:46x64
Repldp.dll2005.90.2232.0237,93609-May-200716:46x64
Repldp.dll2005.90.2232.0187,24809-May-200719:37x86
Replmerg.exe2005.90.2232.0417,64809-May-200716:46x64
Replprov.dll2005.90.2232.0747,88809-May-200716:46x64
Replrec.dll2005.90.2232.01,010,54409-May-200716:46x64
Replsub.dll2005.90.2232.0528,24009-May-200716:46x64
Spresolv.dll2005.90.2232.0225,64809-May-200716:46x64
Sqlaccess.dll2005.90.2232.0357,74409-May-200716:46x86
Sqlagent90.exe2005.90.2232.0392,56009-May-200716:46x64
Sqlservr.exe2005.90.2232.039,373,16809-May-200716:46x64
Sqsrvres.dll2005.90.2232.078,19209-May-200716:46x64
Xmlsub.dll2005.90.2232.0319,85609-May-200716:46x64
Xpstar90.dll2005.90.2232.0543,60009-May-200716:46x64
Xpstar90.rll2005.90.2232.0156,01609-May-200716:46x64

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Referencias

Para obtener más información acerca del mismo problema en Microsoft SQL Server 2000, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

CORREGIR 816937 : puede producir una pérdida de memoria al utilizar el procedimiento almacenado sp_OAMethod para llamar a un método de un objeto COM

Para obtener más información acerca del esquema de nomenclatura para las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

Paquetes de actualización de 822499 nuevo esquema de nomenclatura para software de Microsoft SQL Server

Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft

Más información

En el siguiente script de ejemplo, utilice el procedimiento almacenado sp_OAMethod y el procedimiento de sp_OAGetProperty almacenado para obtener resultados utilizando el parámetro de salida . Si se ejecuta esta secuencia de comandos repetidamente en una nueva conexión a SQL Server 2005, se produce una pérdida de memoria cada vez.
DECLARE @object int;DECLARE @hr int;
DECLARE @src varchar(255), @desc varchar(255);
EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUT;
IF @hr <> 0 BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
RETURN
END
EXEC @hr = sp_OASetProperty @object, 'LoginSecure', 'TRUE'
IF @hr <> 0 BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
EXEC @hr = sp_OAMethod @object, 'Connect', NULL, '<ComputerName>\<InstanceName>'
IF @hr <> 0 BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
DECLARE @property varchar(255)
EXEC @hr = sp_OAMethod @object, 'HostName', @property OUT
IF @hr <> 0 BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
PRINT @property
EXEC @hr = sp_OAGetProperty @object, 'HostName', @property OUT
IF @hr <> 0 BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
PRINT @property
EXEC @hr = sp_OADestroy @object
IF @hr <> 0 BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END
Además, puede experimentar una infracción de acceso porque la solución se describe en la sección "Síntomas" se produce la sección. El archivo de registro de errores SQL incluirá la siguiente información:
2008-03-24 10:03:09.51 spid51      Using 'odsole70.dll' version '2005.90.1399' to execute extended stored procedure 'sp_OACreate'. This is an informational message only; no user action is required.2008-03-24 10:03:13.43 spid51      Using 'dbghelp.dll' version '4.0.5'
2008-03-24 10:03:13.51 spid51 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\LOG\SQLDump0001.txt
2008-03-24 10:03:13.53 spid51 SqlDumpExceptionHandler: Process 51 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2008-03-24 10:03:13.53 spid51 * *******************************************************************************
2008-03-24 10:03:13.53 spid51 *
2008-03-24 10:03:13.53 spid51 * BEGIN STACK DUMP:
2008-03-24 10:03:13.53 spid51 * 03/24/08 10:03:13 spid 51
2008-03-24 10:03:13.53 spid51 *
2008-03-24 10:03:13.54 spid51 *
2008-03-24 10:03:13.54 spid51 * Exception Address = 0000000033387164 Module(odsole70+0000000000007164)
2008-03-24 10:03:13.54 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION
2008-03-24 10:03:13.54 spid51 * Access Violation occurred reading address 0000000006264FF8

La corrección para este problema está en el archivo Odsole70.dll. La primera versión fija del binario es 2005.90.2232.0.


Service Pack 2 (SP2) de Microsoft SQL Server 2005 no incluye este binario fijo. Si experimenta este problema en SQL Server 2005 SP2, debe instalar una actualización acumulativa para corregir este problema.

La primera actualización acumulativa que incluye esta solución es el paquete de actualización acumulativa 2 para SQL Server 2005 SP2. La generación de esta actualización es 09.00.3175. Por lo tanto, puede instalar la actualización acumulativa más reciente para SQL Server 2005 o cualquier actualización acumulativa que se publicó con posterioridad a junio de 2007 para resolver este problema.

Para obtener más información acerca de las actualizaciones acumulativas de SQL Server 2005 Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

937137 el SQL Server 2005 crea que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 2

Propiedades

Id. de artículo: 937277 - Última revisión: 14 ene. 2017 - Revisión: 1

Comentarios