REVISIÓN: No se puede terminar una sesión que se ejecuta una consulta en un servidor vinculado en SQL Server 2005 y SQL Server 2008

Seleccione idioma Seleccione idioma
Id. de artículo: 961237 - Ver los productos a los que se aplica este artículo
Microsoft distribuye Microsoft SQL Server 2005 o Microsoft SQL Server 2008 corrige como un archivo que se puede descargar. 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 anterior SQL Server 2005 o Microsoft SQL Server 2008.
Expandir todo | Contraer todo

En esta página

Síntomas

Síntoma 1

En Microsoft SQL Server 2005 o Microsoft SQL Server 2008, ejecutar una consulta en un servidor vinculado. Cuando intenta cerrar la sesión que se está ejecutando la consulta, no puede terminar la sesión. Además, el rendimiento de SQL Server pasa a ser muy lento.

Se genera un archivo de minivolcado en la carpeta de registro de SQL Server. If you query the sys.dm_os_waiting_tasks dynamic management view, you receive a result that resembles the following:
session_id request_id  ecid        blocking_session_id blocking_ecid task_state      wait_type      wait_duration_ms     
---------- ----------- ----------- ------------------- ------------- --------------- ------------------------------- 
        14        NULL        NULL                NULL             0 NULL                             0 
        20           0           0                   0             0 SUSPENDED       WRITELOG         1360 
        53           0           0                  58             0 SUSPENDED       LCK_M_S          31982080 
        55           0           0                   0             0 RUNNING                          0 
        58           0           0                   0             0 SUSPENDED       LOGBUFFER        1350 
        59           0           0                   0             0 SUSPENDED       LOGBUFFER        1350 
        60           0           0                   0             0 RUNNING                          0 
        61           0           0                   0             0 SUSPENDED       LOGBUFFER        1350 
        63           0           0                  14             0 SUSPENDED       LCK_M_X          76460 
        66           0           0                   0             0 SUSPENDED       LOGBUFFER        1350 
        68           0           0                   0             0 SUSPENDED       LOGBUFFER        1330 
        70           0           0                   0             0 RUNNING                          0 
        77           0           0                   0             0 SUSPENDED       LOGBUFFER        1350 
        84           0           0                   0             0 SUSPENDED       WRITELOG         1230 
        87           0           0                   0             0 SUSPENDED       WRITELOG         3970 
        88           0           0                   0             0 SUSPENDED       WRITELOG         1210 
Note You must restart the SQL Server service to resolve this issue.

Síntoma 2

También puede experimentar el crecimiento de la memoria de SQLAgent a tamaños inusuales. Esto se produce porque un trabajo SQLAgent programa ejecuta un procedimiento almacenado a un servidor vinculado. El procedimiento almacenado produce un error OLEDB. Se pasa el texto de error de OLEDB al SQLAgent y memoria continuamente asignado para el mensaje de texto no se desasigna nunca. Esto hace que el crecimiento de la memoria de SQLAgent. El bucle indefinate hace que el gran número de asignaciones de memoria de SQLAgent.

Información de la pila de llamadas

 # Child-SP          RetAddr           Call Site
00 00000000`1e29c548 00000000`77adccec ntdll!memcpy+0x314 
01 00000000`1e29c550 00000000`77adbed4 ntdll!RtlpReAllocateHeap+0x741 
02 00000000`1e29c800 00000000`73e62504 ntdll!RtlReAllocateHeap+0xa4 
03 00000000`1e29c910 00000000`73de8356 sqlncli10!XxMpHeapReAlloc+0xca 
04 00000000`1e29c950 00000000`73de82de sqlncli10!MpHeapReAlloc+0x44 
05 00000000`1e29c9e0 00000000`73de826e sqlncli10!MpReallocZeroMemory+0x69 
06 00000000`1e29ca10 00000000`73dfb015 sqlncli10!SQLReAllocateMemoryEx+0x2a 
07 00000000`1e29ca50 00000000`73df8b7b sqlncli10!PlAddNewIEx+0x8e 
08 00000000`1e29caa0 00000000`73df869b sqlncli10!SortErrors+0x6b 
09 00000000`1e29cae0 000007fe`f6448d44 sqlncli10!SQLGetDiagFieldW+0x2bc 
0a 00000000`1e29d180 000007fe`f64471b9 odbc32!DriverGetDiagField+0x124 
0b 00000000`1e29d200 00000000`743a253e odbc32!SQLGetDiagFieldW+0x471 
0c 00000000`1e29d750 00000000`7439d0d3 sqlsvc!GetInfoMessage+0x4e 
0d 00000000`1e29d7b0 00000000`7439fee2 sqlsvc!dbQSQLMessageHandler+0x3a3 
0e 00000000`1e2a1b50 00000000`0021c416 sqlsvc!QSQLExecDirectAsync+0x1a2 
0f 00000000`1e2a1bb0 00000000`0021bac7 SQLAGENT!DoSQL+0x316 
10 00000000`1e2a21a0 00000000`002339a3 SQLAGENT!ExecuteTSQL+0xd97 
11 00000000`1e2a6cd0 00000000`00231f8a SQLAGENT!StartStep+0x693 
12 00000000`1e2a77d0 00000000`00230daf SQLAGENT!DoStep+0x3ba 
13 00000000`1e2ac7a0 00000000`756437d7 SQLAGENT!JobManager+0xa6f

Causa

Cuando intenta cerrar la sesión que se está ejecutando la consulta, se produce una excepción interna. SQL Server comienza a recorrer en iteración un bucle indefinido. Por lo tanto, no puede terminar la sesión y el rendimiento disminuye.

Solución

Información de actualización acumulativa para SQL Server 2005 Service Pack 2

La corrección para este problema se lanzó por primera vez en 12 de actualización acumulativa para SQL Server 2005 Service Pack 2. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
96297012 De paquete de actualización acumulativa para SQL Server 2005 Service Pack 2
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2005. Microsoft recomienda que consideren la aplicación de la versión más reciente de corrección que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
937137Compilaciones de SQL Server 2005 que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 2
Microsoft SQL Server 2005 las revisiones 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 siguiente service pack.

Información de actualización acumulativa para SQL Server 2005 Service Pack 3

La corrección para este problema se lanzó por primera vez en la actualización acumulativa 3 para SQL Server 2005 Service Pack 3. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2005, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
967909Paquete de actualización acumulativa 3 para SQL Server 2005 Service Pack 3
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2005. Recomendamos que considere aplicar la versión más reciente de corrección que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
960598Compilaciones de SQL Server 2005 que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 3

Información de actualización acumulativa para la versión de lanzamiento de SQL Server 2008

La corrección para este problema se lanzó por primera vez en la actualización acumulativa 4. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
963036Paquete de actualización acumulativa 4 para SQL Server 2008
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008. Recomendamos que considere aplicar la versión más reciente de corrección que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909Compilaciones de SQL Server 2008 que se publicaron después del lanzamiento de SQL Server 2008

Información de actualización acumulativa para SQL Server 2008 Service Pack 1

La corrección para este problema se lanzó por primera vez en la actualización acumulativa 1 para SQL Server 2008 Service Pack 1. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
969099Paquete acumulativo de actualización 1 para SQL Server 2008 Service Pack 1
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008. Recomendamos que considere aplicar la versión más reciente de corrección que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
970365SQL Server 2008 generaciones que se publicaron después de la publicación de SQL Server 2008 Service Pack 1

Solución

Para evitar el síntoma 1, utilice una expresión para la propiedad SQLStatementSource de la tarea de ejecución de SQL para especificar la instrucción SELECT utilizando la variable. Por ejemplo, establezca la siguiente expresión para la propiedad SQLStatementSource de la tarea de ejecución de SQL.
SELECT filed1 AS a FROM table1 WHERE filed1="+ @[User::variable1]
Síntoma 2, si debería también investigado y resuelto, así como aplicar la actualización acumulativa para el proceso de SQL Server SQLAgent visto memoria inusualmente alto crecimiento, la causa raíz del error de OLEDB.

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:".

Más información

Obtener más información acerca de 12 de paquete de actualización acumulativa para SQL Server 2005 Service Pack 2

Para obtener más información acerca de qué archivos se cambian y ver información acerca de cualquier requisito previo para aplicar el paquete de actualización acumulativa que contenga el hotfix descrito en este artículo de Microsoft Knowledge Base, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
96297012 De paquete de actualización acumulativa para SQL Server 2005 Service Pack 2

Obtener más información acerca de paquete de actualización acumulativa 3 para SQL Server 2005 Service Pack 3

Para obtener más información acerca de qué archivos se cambian y ver información acerca de cualquier requisito previo para aplicar el paquete de actualización acumulativa que contenga el hotfix descrito en este artículo de Microsoft Knowledge Base, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
967909Paquete de actualización acumulativa 3 para SQL Server 2005 Service Pack 3

Obtener más información sobre el paquete de actualización acumulativa 4 para la versión de lanzamiento de SQL Server 2008

Para obtener más información acerca de qué archivos se cambian y ver información acerca de cualquier requisito previo para aplicar el paquete de actualización acumulativa que contenga el hotfix descrito en este artículo de Microsoft Knowledge Base, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
963036Paquete de actualización acumulativa 4 para SQL Server 2008

Obtener más información acerca de paquete de actualización acumulativa 1 para SQL Server 2008 Service Pack 1

Para obtener más información acerca de qué archivos se cambian y ver información acerca de cualquier requisito previo para aplicar el paquete de actualización acumulativa que contenga el hotfix descrito en este artículo de Microsoft Knowledge Base, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
969099Paquete acumulativo de actualización 1 para SQL Server 2008 Service Pack 1

Información de la pila de llamadas

0:053> kL30
Child-SP          Child-BSP         RetAddr           Call Site
00000000`46a3b320 00000000`46a41a78 00000000`77b99750 ntdll!RtlVirtualUnwind+0x100
00000000`46a3bc80 00000000`46a418f8 00000000`781a5900 ntdll!RtlUnwindEx+0x110
00000000`46a3c890 00000000`46a41870 00000000`781a2d40 msvcr80!_UnwindNestedFrames+0x2a0
00000000`46a3c970 00000000`46a41810 00000000`781a3950 msvcr80!CatchIt+0xe0
00000000`46a3c9d0 00000000`46a41730 00000000`781a41a0 msvcr80!FindHandler+0x710
00000000`46a3d480 00000000`46a416b8 00000000`781a4d90 msvcr80!__InternalCxxFrameHandler+0x4e0
00000000`46a3d480 00000000`46a41628 00000000`77c28860 msvcr80!__CxxFrameHandler3+0x370
00000000`46a3d4a0 00000000`46a41628 00000000`77b9a2d0 ntdll!RtlpExecuteEmHandlerForException+0x50
00000000`46a3d4c0 00000000`46a414a8 00000000`77b993a0 ntdll!RtlDispatchException+0x3f0
00000000`46a3e170 00000000`46a41450 00000000`77b99440 ntdll!RtlpRaiseException+0x120
00000000`46a3ec00 00000000`46a41438 00000000`76eb1d40 ntdll!RtlRaiseException+0x20
00000000`46a3ec00 00000000`46a413c8 00000000`781a5aa0 kernel32!GetDateFormatW+0x7a6d8
00000000`46a3eca0 00000000`46a41360 00000000`014f2d30 msvcr80!_CxxThrowException+0x160
00000000`46a3ecf0 00000000`46a412f0 00000000`014f3150 sqlservr!TurnUnwindAndThrowImpl+0x2f0
00000000`46a3ee50 00000000`46a411f0 00000000`014f37b0 sqlservr!ex_raise2+0x6b0
00000000`46a3f110 00000000`46a41190 00000000`038ee0e0 sqlservr!ex_raise+0xc0
00000000`46a3f150 00000000`46a41158 00000000`028bffa0 sqlservr!`anonymous namespace'::LogTdsProtocolError+0xd0
00000000`46a3f160 00000000`46a41138 00000000`0200eed0 sqlservr!`anonymous namespace'::RaiseErrorOnNestedStream+0x60
00000000`46a3f160 00000000`46a41088 00000000`01172180 sqlservr!CPostHydraTds::SendMsgImpl+0xe98100
00000000`46a3f1c0 00000000`46a41030 00000000`01172040 sqlservr!ODS_SENDFULLMSG+0x100
00000000`46a3f220 00000000`46a40fa0 00000000`011738b0 sqlservr!SendErrorToUser+0x1d0
00000000`46a3f290 00000000`46a40f20 00000000`01105a00 sqlservr!CErrorReportingManager::SendErrorToUser+0x260
00000000`46a3f320 00000000`46a40e10 00000000`0118a3d0 sqlservr!CErrorReportingManager::CwchFormatAndPrint+0x610
00000000`46a3f470 00000000`46a40dd8 00000000`0118a2f0 sqlservr!ex_vcallprint+0xb0
00000000`46a3f4b0 00000000`46a40d80 00000000`024cbfb0 sqlservr!ex_callprint+0xa0
00000000`46a3f4f0 00000000`46a40c90 00000000`02514e20 sqlservr!COledbError::FRelayErrorInfo+0x960
00000000`46a3f570 00000000`46a40c58 00000000`02f82030 sqlservr!COledbError::FPrintSQLServerError+0x190
00000000`46a3f5a0 00000000`46a40c10 00000000`0441b450 sqlservr!COledbError::GatherAndPrintMultipleResultsError+0x30
00000000`46a3f5b0 00000000`46a40b28 00000000`0164d160 sqlservr!CQScanRmtQueryNew::GetRow+0xad0
00000000`46a3f660 00000000`46a40a28 00000000`01768560 sqlservr!CQScanNLJoinTrivialNew::GetRow+0x1a90
00000000`46a3f690 00000000`46a40928 00000000`01333d30 sqlservr!CXStmtQuery::ErsqExecuteQuery+0xe50
00000000`46a3f760 00000000`46a407c8 00000000`0130ce40 sqlservr!CMsqlExecContext::ExecuteStmts<1,1>+0x19d0
00000000`46a3f870 00000000`46a406d0 00000000`0130ac70 sqlservr!CMsqlExecContext::FExecute+0x7c0
00000000`46a3f960 00000000`46a405f0 00000000`010fa300 sqlservr!CSQLSource::Execute+0x5f0
00000000`46a3fa10 00000000`46a404f8 00000000`010fa5c0 sqlservr!process_request+0x5c0
00000000`46a3fbe0 00000000`46a40478 00000000`0100e4b0 sqlservr!process_commands+0x6d0
00000000`46a3fdf0 00000000`46a40420 00000000`0100e210 sqlservr!SOS_Task::Param::Execute+0x1a0
00000000`46a3fe70 00000000`46a40378 00000000`0100dc30 sqlservr!SOS_Scheduler::RunTask+0x190
00000000`46a3fe90 00000000`46a402b0 00000000`01061ea0 sqlservr!SOS_Scheduler::ProcessTasks+0x170

Referencias

Para obtener más información acerca de la lista de generaciones que están disponibles después de SQL Server 2005 Service Pack 3, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
960598Compilaciones de SQL Server 2005 que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 3
Para obtener más información acerca de la lista de generaciones que están disponibles después del lanzamiento de SQL Server 2008 Service Pack 1, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
970365SQL Server 2008 generaciones que se publicaron después de la publicación de SQL Server 2008 Service Pack 1
Para obtener más información acerca de la lista de generaciones que están disponibles después del lanzamiento de SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909Compilaciones de SQL Server 2008 que se publicaron después del lanzamiento de SQL Server 2008
Para obtener más información acerca de la lista de generaciones que están disponibles después de SQL Server Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
937137Compilaciones de SQL Server 2005 que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 2
Para obtener más información acerca del modelo de servicio incremental para SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
935897Un modelo incremental de servicio está disponible desde el equipo de SQL Server para entregar revisiones para problemas detectados
Para obtener más información acerca de cómo obtener SQL Server 2005 Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
913089Cómo obtener el service pack más reciente para SQL Server 2005
Para obtener más información sobre las nuevas características y mejoras en SQL Server 2005 Service Pack 2, visite el siguiente sitio Web de Microsoft:
http://go.microsoft.com/fwlink/?LinkId=71711
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:
822499Nuevo esquema de nomenclatura para los paquetes de actualización de software de Microsoft SQL Server
Para obtener más información acerca de la terminología relativa a las actualizaciones de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

Propiedades

Id. de artículo: 961237 - Última revisión: jueves, 13 de mayo de 2010 - Versión: 6.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
Palabras clave: 
kbmt kbsql2005engine kbsurveynew kbexpertiseadvanced kbqfe kbfix KB961237 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): 961237

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