Проблемы
Если ваше приложение Java использует транзакции XA, а версия драйвера Microsoft JDBC Driver for SQL Server (sqljdbc_xa. dll), установленная в экземпляре SQL Server, 4.2.6420.100 или 6.0.7507.10, счетчик дескрипторов событий продолжает расти до тех пор, пока не завершится сбой процесса SQL Server. Чтобы найти счетчик дескрипторов событий для процесса SQL Server, запустите диспетчер задач и откройте вкладку сведения . Если ресурсы ядра SQL Server исчерпаны, в журнале событий приложений может быть зарегистрирована следующая запись:
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
Причина
Эта проблема возникает, когда класс создает экземпляр DTC ITransaction, но не освобождает экземпляр при остановке. Когда класс вызывается много времени, в экземпляре SQL Server происходит ошибка утечки дескрипторов.
Решение
Чтобы устранить эту проблему, замените существующий драйвер sqljdbc_xa. dll.
Драйвер JDBC 4,2
Для этого загрузите и установите обновленный пакет Microsoft JDBC Driver 4,2 для SQL Server (sqljdbc_xa. dll) в центре загрузки Майкрософт. Примечания.
-
Обновленный номер версии пакета — 4.2.8112.100.
-
Существующие файлы библиотеки на стороне клиента (sqljdbc41. jar или sqljdbc42. jar) не нужно заменять, чтобы можно было использовать обновленный драйвер sqljdbc_xa. dll.
Драйвер JDBC 6,0
Для этого загрузите и установите обновленный пакет Microsoft JDBC Driver 6,0 для SQL Server (sqljdbc_xa. dll) в центре загрузки Майкрософт.
Примечания.
-
Обновленный номер версии пакета — 6.0.8112.100.
-
Существующие файлы библиотеки на стороне клиента (sqljdbc41. jar или sqljdbc42. jar) не нужно заменять, чтобы можно было использовать обновленный драйвер sqljdbc_xa. dll.
Дополнительная информация
Эта проблема появилась в драйвере JDBC для SQL Server версии 4.2.6420.100, а также существует в версии 6.0.7507.10. Эта проблема исправлена в драйвере JDBC для SQL Server версии 6.0.7728.100 и 6.0.8112.100. Это исправление освобождает экземпляр DTC ITransaction при остановке экземпляра.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.
Относится к
Эта статья относится к следующим продуктам:
-
Microsoft JDBC Driver 4,2 и 6,0 для SQL Server при использовании с:
-
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
-