Síntoma

Imagine la siguiente situación:

  • Instala Microsoft SQL Server en un equipo que ejecuta Windows Server.

  • Cree un servidor vinculado para una base de datos de Oracle.

  • Habilite la opción permitir el proceso en el cuadro de diálogo Opciones para el proveedor del servidor vinculado. Nota De forma predeterminada, la opción no está seleccionada.

  • Ejecuta una consulta de servidor vinculada con el proveedor OraOLEDB.

En este escenario, el servicio de SQL Server se bloquea y no se devuelven resultados para la consulta. Además, puede encontrarse con los siguientes problemas:

  • Recibe el siguiente mensaje de error en el registro de eventos del sistema de Windows:

    ---------------------------------- El servicio SQL Server (MSSQLSERVER) terminó inesperadamente. Lo ha hecho 1 vez. ----------------------------------

  • Un archivo de minivolcado del proceso de SQL Server se genera con daños en la pila y recibe un mensaje de excepción similar al siguiente:

    En minivolcado. MDMP la instrucción de ensamblado en ntdll! RtlReportCriticalFailure + 62 en C:\Windows\System32\ntdll.dll de Microsoft Corporation ha provocado una excepción desconocida (0xc0000374) en el subproceso 235 O, en ocasiones, también puede ver otra excepción en el ErrorLog: SqlDumpExceptionHandler: el proceso 74 generó una excepción grave c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server está finalizando este proceso.

  • La pila del archivo de minivolcado contiene módulos de terceros en el proceso SQLServer. exe. Por ejemplo, el archivo de minivolcado contiene la siguiente información en módulos de Oracle:

    OraOLEDButl11 OraOLEDBrst11 OraOLEDBrst10 Pila de llamadas completas: función ARG 1 Arg 2 Arg 3 Arg 4 ntdll! RtlReportCriticalFailure + 62 00000000 ' 00000002 00000000 ' 00000023 00000000 ' 403cc8a2 00000000 ' 00000003 ntdll! RtlpReportHeapFailure + 26 00000000 ' 403c95f0 00000000 ' 403d7a78 00000000 ' 403d7ab0 00000000 ' 4d200e30 ntdll! RtlpHeapHandleError + 12 00000000 ' 04180000 00000000 ' 00000000 00000000 ' 00000000 00000000 ' 00000000 ntdll! RtlpLogHeapFailure + A4 00000000 ' 403d7b40 00000000 ' 04180000 00000000 ' 403d7b50 00000000 ' 00000008 ntdll! RtlFreeHeap + 1aa8f 00000000 ' 00000020 00000000 ' 403cd850 00000000 ' 00000001 00000000 ' 403d0024 ole32! CoTaskMemFree + 36 00000000 ' 403d6b00 00000000 ' 00000001 00000000 ' 4d200e30 00000000 ' 00000024 OraOLEDButl11 + 1a5f 00000000 ' 00000001 00000000 ' 4d200e30 00000000 ' 00000024 00000000 ' 403d7ab8 0x403d6b00 00000000 ' 4d200e30 00000000 ' 00000024 00000000 ' 403d7ab8 00000000 ' 24492843 0x00000001 00000000 ' 00000024 00000000 ' 403d7ab8 00000000 ' 24492843 00000000 ' 403b8c00 0x4d200e30 00000000 ' 403d7ab8 00000000 ' 24492843 00000000 ' 403b8c00 00000000 ' 403c95f0 0x00000024 00000000 ' 24492843 00000000 ' 403b8c00 00000000 ' 403c95f0 00000000 ' 403ca610 0x403d7ab8 00000000 ' 403b8c00 00000000 ' 403c95f0 00000000 ' 403ca610 00000000 ' 403ca610 OraOLEDBrst11 + 12843 00000000 ' 403c95f0 00000000 ' 403ca610 00000000 ' 403ca610 00000000 ' 403c95f0 0x403b8c00 00000000 ' 403ca610 00000000 ' 403ca610 00000000 ' 403c95f0 00000000 ' 244928b1 0x403c95f0 00000000 ' 403ca610 00000000 ' 403c95f0 00000000 ' 244928b1 00000000 ' 403d7ab8 0x403ca610 00000000 ' 403c95f0 00000000 ' 244928b1 00000000 ' 403d7ab8 00000000 ' 403c95f0 0x403ca610 00000000 ' 244928b1 00000000 ' 403d7ab8 00000000 ' 403c95f0 00000000 ' 4966a260 0x403c95f0 00000000 ' 403d7ab8 00000000 ' 403c95f0 00000000 ' 4966a260 00000000 ' 05cd21e0 OraOLEDBrst11 + 128b1 00000000 ' 403c95f0 00000000 ' 4966a260 00000000 ' 05cd21e0 00000000 ' 00000000 0x403d7ab8 00000000 ' 4966a260 00000000 ' 05cd21e0 00000000 ' 00000000 00000000 ' 2449ca03 0x403c95f0 00000000 ' 05cd21e0 00000000 ' 00000000 00000000 ' 2449ca03 00000000 ' 4d200e30 0x4966a260 00000000 ' 00000000 00000000 ' 2449ca03 00000000 ' 4d200e30 00000000 ' 00000001 0x05cd21e0 00000000 ' 2449ca03 00000000 ' 4d200e30 00000000 ' 00000001 00000000 ' 05cd21e0

Los productos de empresas de terceros que se describen en este artículo los fabrican otras compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.

Causa

Este problema se produce porque los caracteres especiales "--" existen en la consulta del servidor vinculado de Oracle. Estos caracteres se usan como símbolo de comentario.

El proceso de SQL Server se bloquea porque el proveedor de servidor vinculado de terceros se carga dentro del proceso de SQL Server y modifica incorrectamente la memoria del montón que no pertenece a él. Si el montón predeterminadodentro de un proceso es inestable, para protegerse de los datos dañados, el sistema operativo apaga el proceso automáticamente. Si el proveedor de servidor vinculado de terceros está habilitado junto con la opción permitir InProcess, el proceso de SQL Server se bloquea cuando este servidor vinculado de terceros experimenta el problema descrito.

Solución alternativa

Para resolver este problema, utilice uno de los métodos siguientes:

  • Quite el símbolo Comentarios.

  • Reemplace el símbolo de comentarios con el símbolo de los siguientes comentarios:

    /* */

Más información

Para obtener información y soluciones, comunícate con el proveedor de terceros. Para obtener la versión más reciente del proveedor de OLEDB, visite:

https://www.oracle.com/technetwork/database/windows/downloads/index-090165.html 

 

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a tu experiencia?

¡Gracias por sus comentarios!

×