Síntomas
Si su aplicación Java usa transacciones XA y la versión del controlador Microsoft JDBC para SQL Server (sqljdbc_xa. dll) que está instalada en la instancia de SQL Server es 4.2.6420.100 o 6.0.7507.10, el recuento de controladores de eventos continúa aumentando hasta que se bloquea el proceso de SQL Server. Para encontrar el recuento de identificadores de eventos para el proceso de SQL Server, inicie el administrador de tareas y, a continuación, haga clic en la pestaña detalles . Cuando los recursos del núcleo de SQL Server se agoten, es posible que encuentre la siguiente entrada registrada en el registro de eventos de la aplicación:
Log Name: Application
Source: Microsoft-Windows-Complus
Date: date time
Event ID: 4689
Task Category: (8)
Level: Error
Keywords: Classic
User: N/A
Computer: computer_name
Description:
The run-time environment has detected an inconsistency in its internal state. This indicates a potential instability in the process that could be caused by the custom components running in the COM+ application, the components they make use of, or other factors. Error in COM\complus\src\inc\UTSem.H(100), Insufficient system resources exist to complete the requested service.
: CreateEvent returned a NULL handle
Causa
Este problema se produce cuando una clase crea una instancia ITransaction de DTC pero no libera la instancia cuando se detiene. Cuando se llama a la clase muchas veces, se produce un problema de pérdida de identificador en la instancia de SQL Server.
Resolución
Para resolver este problema, reemplace el controlador sqljdbc_xa. dll existente.
Controlador JDBC 4,2
Para ello, descargue e instale el controlador Microsoft JDBC actualizado 4,2 para SQL Server (sqljdbc_xa. dll) en el centro de descarga de Microsoft. Notas
-
El número de versión del paquete actualizado es 4.2.8112.100.
-
Los archivos de la biblioteca del cliente existentes (sqljdbc41. jar o sqljdbc42. jar) no tienen que reemplazarse para que puedas usar el controlador sqljdbc_xa. dll actualizado.
Controlador JDBC 6,0
Para ello, descargue e instale el controlador Microsoft JDBC actualizado 6,0 para SQL Server (sqljdbc_xa. dll) en el centro de descarga de Microsoft.
Notas
-
El número de versión del paquete actualizado es 6.0.8112.100.
-
Los archivos de la biblioteca del cliente existentes (sqljdbc41. jar o sqljdbc42. jar) no tienen que reemplazarse para que puedas usar el controlador sqljdbc_xa. dll actualizado.
Más información
Este problema se presentó en el controlador JDBC para SQL Server versión 4.2.6420.100, y también existe en la versión 6.0.7507.10. Este problema se ha corregido en el controlador JDBC para SQL Server versión 6.0.7728.100 y 6.0.8112.100. Esta corrección libera la instancia ITransaction de DTC cuando la instancia está detenida.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Referencias
Obtenga más información sobre la terminología que Microsoft usa para describir las actualizaciones de software.
Se aplica a
Este artículo se refiere a lo siguiente:
-
Microsoft JDBC driver 4,2 y 6,0 para SQL Server cuando se usa con:
-
Microsoft SQL Server 2016
-
Microsoft SQL Server 2014
-
Microsoft SQL Server 2012
-
Microsoft SQL Server 2008 R2
-
Microsoft SQL Server 2008
-
Microsoft SQL Server 2005
-