Problembeschreibung
Wenn Ihre Java-Anwendung XA-Transaktionen verwendet und die Version der Datei Microsoft JDBC Driver für SQL Server (sqljdbc_xa. dll), die in der Instanz von SQL Server installiert ist, 4.2.6420.100 oder 6.0.7507.10ist, wird die Anzahl der Ereignishandles immer weiter erhöht, bis der SQL Server-Prozess abstürzt. Wenn Sie die Anzahl der Ereignishandles für den SQL Server-Prozess ermitteln möchten, starten Sie den Task-Manager, und klicken Sie dann auf die Registerkarte Details . Wenn die Ressourcen des SQL Server-Kernels erschöpft sind, finden Sie möglicherweise den folgenden Eintrag im Anwendungsereignisprotokoll:
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
Ursache
Dieses Problem tritt auf, wenn eine Klasse eine DTC-ITransaction-Instanz erstellt, aber die Instanz nicht freigibt, wenn Sie beendet wird. Wenn die Klasse oft aufgerufen wird, tritt ein Problem mit dem Handle-Leck in der Instanz von SQL Server auf.
Fehlerbehebung
Um dieses Problem zu beheben, ersetzen Sie den vorhandenen sqljdbc_xa. dll-Treiber.
JDBC Driver 4,2
Laden Sie dazu das aktualisierte Microsoft JDBC Driver 4,2 für SQL Server-Paket (sqljdbc_xa. dll) aus dem Microsoft Download Center herunter, und installieren Sie es. Hinweise
-
Die aktualisierte Paketversions Nummer lautet 4.2.8112.100.
-
Vorhandene clientseitige Bibliotheksdateien (sqljdbc41. jar oder sqljdbc42. jar) müssen nicht ersetzt werden, damit Sie den aktualisierten sqljdbc_xa. dll-Treiber verwenden können.
JDBC Driver 6,0
Laden Sie dazu das aktualisierte Microsoft JDBC Driver 6,0 für SQL Server-Paket (sqljdbc_xa. dll) aus dem Microsoft Download Center herunter, und installieren Sie es.
Hinweise
-
Die aktualisierte Paketversions Nummer lautet 6.0.8112.100.
-
Vorhandene clientseitige Bibliotheksdateien (sqljdbc41. jar oder sqljdbc42. jar) müssen nicht ersetzt werden, damit Sie den aktualisierten sqljdbc_xa. dll-Treiber verwenden können.
Weitere Informationen
Dieses Problem wurde in JDBC Driver für SQL Server, Version 4.2.6420.100, eingeführt und ist auch in Version 6.0.7507.10. Dieses Problem wurde in JDBC Driver für SQL Server, Version 6.0.7728.100 und 6.0.8112.100, behoben. Mit diesem Fix wird die DTC-ITransaction-Instanz freigegeben, wenn die Instanz beendet wird.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Erfahren Sie mehr über die Terminologie , mit der Microsoft Softwareupdates beschreibt.
Die Informationen in diesem Artikel beziehen sich auf
Die Informationen in diesem Artikel beziehen sich auf:
-
Microsoft JDBC Driver 4,2 und 6,0 für SQL Server bei Verwendung mit:
-
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
-