Сведения о выпуске
Microsoft JDBC Driver 12.8 для SQL Server

------------
Введение
------------
Этот файл содержит самые последние сведения и другие важные дополнения к документации по Microsoft JDBC 
Driver 12.8 для SQL Server. Обязательно полностью прочтите этот файл, прежде чем устанавливать 
драйвер JDBC.

Нам важно получать ваши отзывы, и мы прилагаем все усилия, чтобы своевременно на них 
реагировать. Предоставить отзыв можно в блогах и сетевых форумах, посвященных драйверу JDBC. 
Подробнее см. на странице о Microsoft JDBC Driver 12.8 для SQL Server по адресу https://aka.ms/mssql-jdbc-feedback.


------------
Установка
------------
Инструкции по установке драйвера JDBC приводятся в файле install.txt. Этот файл включает 
сведения об установке драйвера JDBC в операционных системах Windows, Linux и macOS.


---------------------------
Поддерживаемые операционные системы
---------------------------
Microsoft JDBC Driver 12.8 для SQL Server поддерживает следующие операционные системы:
  Windows Server 2012
  Windows Server 2012 R2
  Windows Server 2016
  Windows Server 2019
  Windows Server 2022
  Windows 8.1
  Windows 10
  Windows 11
  Linux
  macOS

В вышеприведенном списке представлены некоторые из поддерживаемых операционных систем. Драйвер JDBC совместим 
с любой операционной системой, позволяющей использовать виртуальную машину Java (JVM). 

Однако только последние версии операционных систем Linux и macOS (Ubuntu 20.04, Ubuntu 18.04, CentOS 7, SUSE 12,
 macOS 11) тестировались на совместимость и поддержку.


-----------------------
Поддерживаемые версии Java
-----------------------
Компонент Microsoft JDBC Driver 12.8 для SQL Server протестирован для поддержки последних версий сборок Java 
Development Kit (JDK) из Open JDK и Zulu на операционных системах, упомянутых выше.
Поддерживаются указанные ниже версии семейств системной библиотеки среды выполнения Java (JRE):

  ----------------------------------------------------------------------
  Версия семейства JRE | Driver JAR для максимальной поддержки
  ----------------------------------------------------------------------
  8 и выше                 | mssql-jdbc-12.8.0.jre8.jar
  11 и выше                | mssql-jdbc-12.8.0.jre11.jar


----------------
Состав выпуска
----------------
Файл архива Microsoft JDBC Driver 12.8 для SQL Server в формате ZIP или TAR распаковывает следующие файлы 
по указанным путям относительно выбранного каталога установки.

<каталог_установки>\sqljdbc_<версия>\<язык>\install.txt
<каталог_установки>\sqljdbc_<версия>\<язык>\release.txt
<каталог_установки>\sqljdbc_<версия>\<язык>\license.txt
<каталог_установки>\sqljdbc_<версия>\<язык>\thirdpartynotices.txt
<каталог_установки>\sqljdbc_<версия>\<язык>\mssql-jdbc-12.8.0.jre8.jar
<каталог_установки>\sqljdbc_<версия>\<язык>\mssql-jdbc-12.8.0.jre11.jar
<каталог_установки>\sqljdbc_<версия>\<язык>\auth\x86\mssql-jdbc_auth-12.8.0.x86.dll
<каталог_установки>\sqljdbc_<версия>\<язык>\auth\x64\mssql-jdbc_auth-12.8.0.x64.dll
<каталог установки>\sqljdbc_<версия>\<язык>\samples\<файлы образцов...>
<каталог_установки>\sqljdbc_<версия>\<язык>\xa\xa_install.sql
<каталог_установки>\sqljdbc_<версия>\<язык>\xa\x86\sqljdbc_xa.dll
<каталог_установки>\sqljdbc_<версия>\<язык>\xa\x64\sqljdbc_xa.dll

Подробные сведения о каждом из компонентов см. в электронной документации
по Microsoft JDBC Driver для SQL Server: https://aka.ms/mssql-jdbc


-------------
ДОКУМЕНТАЦИЯ
-------------
Этот пакет содержит сведения о выпуске, руководство по установке и условия лицензии. 
Всю прочую документацию можно найти в Интернете.

Просим учесть, что файлы автономной справки больше не обновляются. 


---------
JAR-ФАЙЛЫ
---------
Для поддержки обратной совместимости и возможных сценариев обновления каждый пакет установки JDBC Driver 12.8 включает 
три библиотеки классов JAR.
	mssql-jdbc-12.8.0.jre8.jar
	mssql-jdbc-12.8.0.jre11.jar


----------------------
ФАЙЛЫ ОПРЕДЕЛЕННЫХ КОМПОНЕНТОВ
----------------------
Компоненты Azure Active Directory и встроенной проверки подлинности (в Windows) помещаются 
в каталог "auth".

Компоненты распределенных транзакций JDBC помещаются в каталог "xa".


--------------------
ЗАВИСИМОСТИ КОМПОНЕНТОВ
--------------------
Несколько функций в Microsoft JDBC Driver 12.8 для SQL Server зависят от внешних библиотек, 
указанных ниже.

1. Использование Always Encrypted с поставщиком хранилища ключей Azure
   Зависимые библиотеки: azure-keyvault (версия 4.5.1) и azure-identity (версия 1.7.0-beta.2).

2. Использование функции "Always Encrypted с безопасными анклавами"
   Зависимые библиотеки: com.google.code.gson (версия 2.8.9)
   и org.bouncycastle (версия 1.70). Библиотека org.bouncycastle требуется только для JDK 8.
   
3. Использование функции "Проверка подлинности Azure Active Directory" в операционных системах Windows, Linux и macOS
   Зависимые библиотеки: azure-identity (версия 1.7.0-beta.2).
   
4. Получение метаданных параметров с помощью "useFmtOnly"
   Зависимые библиотеки: antlr-runtime (версия 4.9.3)
   
Подробные сведения о включении этих зависимых библиотек в стандартное приложение Java 
или в приложение Maven: https://go.microsoft.com/fwlink/?linkid=867575

-------
ПРИМЕРЫ
-------
В каталог "samples" помещаются примеры приложений, демонстрирующие различные возможности драйвера JDBC.
драйвера JDBC. Дополнительные сведения о каждом примере и о том, как их запускать, см. в электронной 
документации.


-----------
Список изменений
-----------
Подробный список изменений, исправлений и улучшений в каждом выпуске: https://aka.ms/mssql-jdbc-release-notes.

------------
Известные проблемы
------------
Ниже перечислены известные проблемы с Microsoft JDBC Driver 12.8 для SQL Server:

1) Разрыв подключения к SQL Azure

При подключении к SQL Azure неактивные подключения могут быть завершены сетевым компонентом (например, 
брандмауэром) после периода бездействия. Чтобы сетевой компонент не удалял неактивные подключения, 
следует задать следующие параметры реестра (или их эквиваленты, если используется не Windows) в операционной 
системе, где загружен драйвер.
           
Параметр реестра                                                                   Рекомендованное значение
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\KeepAliveTime            30000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\KeepAliveInterval         1000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpMaxDataRetransmission  10

2) Использование возвращающего табличное значение параметра с SQL_VARIANT 

2.а) Для значений дат

При использовании возвращающего табличное значение параметра для заполнения таблицы, содержащей значения datetime, smalldatetime или date в столбце sql_variant, 
вызов метода getDateTime()/getSmallDateTime()/getDate() в ResultSet не работает и создает следующее исключение:

	java.lang.String не удается привести к java.sql.Timestamp.

Решение. Используйте getString() или getObject().

2.б) Использование возвращающего табличное значение параметра с SQL_VARIANT для значений NULL

При использовании возвращающего табличное значение параметра для заполнения таблицы и отправки значения NULL в столбец типа sql_variant будет возникать
исключение, так как вставка значения NULL со столбцом типа sql_variant в возвращающей табличное значение параметр сейчас не поддерживается.


3) Использование проверки подлинности NTLM

Одновременное включение расширенной защиты и шифрования соединений в настоящий момент не поддерживается.

4) При использовании useFmtOnly

С этой функцией имеются некоторые проблемы, причиной которых являются недостатки в логике синтаксического анализа SQL.
Дополнительные сведения и рекомендуемые обходные решения см. на странице https://aka.ms/mssql-jdbc-usefmtonly.
