FIX: The handle count increases until the SQL Server process crashes if your Java application uses XA Transactions

Symptoms
If your Java application uses XA Transactions, and the version of the Microsoft JDBC Driver for SQL Server (sqljdbc_xa.dll) file that is installed in the instance of SQL Server is 4.2.6420.100, the Event handle count continues to increase until the SQL Server process crashes.

To find the Event handle count for the SQL Server process, start Task Manager, and then click the Details tab.

When the SQL Server kernel resources are exhausted, you may find the following entry logged in the Application event log:

Log Name: ApplicationSource: Microsoft-Windows-ComplusDate:  date timeEvent ID: 4689Task Category: (8)Level: ErrorKeywords: ClassicUser: N/AComputer: computer_nameDescription: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
Cause
This issue occurs when a class creates a DTC ITransaction instance but does not release the instance when it is stopped. When the class is called many times, a handle leak issue occurs in the instance of SQL Server.
Resolution
To resolve this issue, replace the existing sqljdbc_xa.dll driver. To do this, download and install the updated Microsoft JDBC Driver for SQL Server (sqljdbc_xa.dll) package from the Microsoft Download Center.

Notes

  • The updated package version number is 6.0.7728.100.
  • Existing client-side library files (sqljdbc.jar, sqljdbc41.jar, or sqljdbc42.jar) do not have to be replaced so that you can use the updated sqljdbc_xa.dll driver. 
More information
This issue was introduced in JDBC Driver for SQL Server version 4.2.6420.100, and also exists in version 6.0.7507.10. This issue is fixed in JDBC Driver for SQL Server version 6.0.7728.100. This fix releases the DTC ITransaction instance when the instance is stopped.
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
References
Learn about the terminology that Microsoft uses to describe software updates.

Applies to

This article applies to the following:
  • Microsoft JDBC Driver 4.2 for SQL Server when used with:

    • 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
Properties

Article ID: 3197056 - Last Review: 10/03/2016 23:57:00 - Revision: 1.0

Microsoft SQL Server 2012 Analysis Services, Microsoft SQL Server 2012 Business Intelligence, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Community Technology Preview 2, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Enterprise Core Community Technical Preview 2

  • kbqfe kbfix kbexpertiseinter kbsurveynew kbbug atdownload KB3197056
Feedback