Sintomas
Se o seu aplicativo Java usar transações XA e a versão do arquivo Microsoft JDBC Driver para SQL Server (sqljdbc_xa. dll) instalada na instância do SQL Server for 4.2.6420.100 ou 6.0.7507.10, a contagem de identificadores de eventos continuará aumentando até que o processo do SQL Server falhe. Para localizar a contagem de identificadores de eventos para o processo do SQL Server, inicie o Gerenciador de tarefas e clique na guia detalhes . Quando os recursos do kernel do SQL Server estiverem esgotados, você pode encontrar a seguinte entrada registrada no log de eventos do aplicativo:
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
Esse problema ocorre quando uma classe cria uma instância DTC ITransaction, mas não libera a instância quando ela é interrompida. Quando a classe é chamada muitas vezes, um problema de vazamento de identificador ocorre na instância do SQL Server.
Resolução
Para solucionar esse problema, substitua o driver sqljdbc_xa. dll existente.
Driver JDBC 4,2
Para fazer isso, baixe e instale o pacote Microsoft JDBC Driver 4,2 para SQL Server (sqljdbc_xa. dll) atualizado no centro de download da Microsoft. Observações
-
O número da versão do pacote atualizado é 4.2.8112.100.
-
Os arquivos de biblioteca do lado do cliente existentes (sqljdbc41. jar ou sqljdbc42. jar) não precisam ser substituídos para que você possa usar o driver do sqljdbc_xa. dll atualizado.
Driver JDBC 6,0
Para fazer isso, baixe e instale o pacote Microsoft JDBC Driver 6,0 para SQL Server (sqljdbc_xa. dll) atualizado no centro de download da Microsoft.
Observações
-
O número da versão do pacote atualizado é 6.0.8112.100.
-
Os arquivos de biblioteca do lado do cliente existentes (sqljdbc41. jar ou sqljdbc42. jar) não precisam ser substituídos para que você possa usar o driver do sqljdbc_xa. dll atualizado.
Informações adicionais
Esse problema foi apresentado na versão 4.2.6420.100 do driver JDBC para SQL Server e também existe na versão 6.0.7507.10. Este problema foi corrigido no driver JDBC para SQL Server versão 6.0.7728.100 e 6.0.8112.100. Esta correção libera a instância do DTC ITransaction quando a instância é interrompida.
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.
Aplicável a
Este artigo é aplicável ao seguinte:
-
Driver Microsoft JDBC 4,2 e 6,0 para SQL Server quando usado com:
-
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
-