SQL Server puede experimentar infracciones de acceso al cancelar una consulta de DB2
Este artículo le ayuda a resolver el problema que se produce cuando un usuario cancela una consulta de servidor vinculado en una base de datos de IBM DB2.
Versión del producto original: Host Integration Server 2010
Número KB original: 2761993
Síntomas
Imagine la siguiente situación:
Tiene un servidor vinculado que se conecta a una base de datos de IBM DB2 mediante el proveedor OLE DB para DB2.
La cadena de conexión DB2 incluye
Rowset Cache Sizeel parámetro con un valor distinto de cero (por ejemplo,Rowset Cache Size=100).
Si un usuario intenta cancelar una consulta que se está ejecutando actualmente a través del servidor vinculado a la base de datos de IBM DB2, el proceso de SQL Server puede notificar una infracción de acceso y crear un archivo de volcado.
Causa
El problema se produce debido a un problema de sincronización en el Proveedor OLE DB de Microsoft para DB2 al cancelar una consulta en ejecución cuando la Rowset Cache Size característica está habilitada.
Solución
Cambie la cadena de conexión DB2 en el servidor vinculado para incluir el parámetro: Rowset Cache Size=0
El SQL Server debe reiniciarse después de realizar este cambio para asegurarse de que el proveedor db2 carga la nueva cadena de conexión.
Más información
El parámetro indica al proveedor de datos DB2 que pre-capturar filas de DB2 mientras procesa y devuelve filas al consumidor RowSet Cache Size de datos simultáneamente. Esta característica puede mejorar el rendimiento en operaciones masivas de solo lectura en equipos multiprocesador o de varios núcleos. El valor predeterminado de esta propiedad es 0 (tamaño de caché de conjunto de filas=0), lo que indica que la característica de captura previa opcional está "desactivada".
No se recomienda habilitar este parámetro (usar un valor distinto de cero) para escenarios que no son operaciones de lectura masiva que requieren un alto nivel de rendimiento.