版本資訊
Microsoft JDBC Driver 12.8 for SQL Server

------------
簡介
------------
本檔案包含最新或其他重要資訊，以補充 Microsoft JDBC 
Driver 12.8 for SQL Server 文件。您應先完整閱讀本檔案，再安裝 
JDBC 驅動程式。

我們非常重視您的意見，並會盡力在最短的時間內 
回應您的意見反應。如需使用 JDBC 驅動程式部落格與線上論壇來提供意見反應的相關資訊，
請參閱 Microsoft JDBC Driver 12.8 for SQL Server 頁面，網址為 https://aka.ms/mssql-jdbc-feedback


------------
安裝
------------
安裝 JDBC 驅動程式的指示位於 install.txt 中。請參閱該檔案，以取得 
在 Windows、Linux 與 macOS 作業系統上安裝 JDBC 驅動程式的相關資訊。


---------------------------
支援的作業系統
---------------------------
Microsoft JDBC Driver 12.8 for 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 for SQL Server 已經過測試，且支援最新的 Java 版本 
Open JDK 和 Zulu 提供的最新 Java Development Kit(JDK) 組建版本。
支援下列 Java Runtime Environment (JRE) 系統程式庫系列版本：

  ----------------------------------------------------------------------
  JRE 系列版本 | 驅動程式 JAR 的最大支援版本
  ----------------------------------------------------------------------
  8+                 | mssql-jdbc-12.8.0.jre8.jar
  11+                | mssql-jdbc-12.8.0.jre11.jar


----------------
版本內容
----------------
Microsoft JDBC Driver 12.8 for 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 for 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 for SQL Server 中有幾項功能相依於外部程式庫， 
如下所列：

1.搭配 Azure Key Vault 提供者使用「Always Encrypted」
   相依程式庫: azure-keyvault (4.5.1 版)、azure-keyvault-webkey (1.7.0-beta.2 版)

2.使用「具有安全記憶體保護區的 Always Encrypted」
   相依程式庫：com.google.code.gson(2.8.9 版)
   與 org.bouncycastle (1.70 版)。只有 JDK 8 才需要 org.bouncycastle。
   
3.在 Windows、Linux 與 macOS 作業系統上使用「Azure Active Directory 驗證」
   相依程式庫: 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 驅動程式各種功能的應用程式範例包含在 'samples'
"samples"目錄中。如需各個範例及其執行方法的詳細資料，請參閱線上 
文件。


-----------
變更清單
-----------
如需每個版本中所做變更、修正和改進的詳細清單，請參閱: https://aka.ms/mssql-jdbc-release-notes

------------
已知問題
------------
下列為 Microsoft JDBC Driver 12.8 for 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 使用 TVP 時 

2.a) 針對日期值

在使用 TVP 填入資料表 (包含儲存於 in sql_variant 資料行的 datetime/smalldatetime/date 值) 時，
無法對 ResultSet 呼叫 getDateTime()/getSmallDateTime()/getDate()，而且會擲回下列例外狀況：

	java.lang.String 無法轉換成 java.sql.Timestamp

因應措施： 請改用 getString() 或 getObject()。

2.b) 針對 NULL 值搭配 SQL_VARIANT 使用 TVP

如果您使用 TVP 來填入資料表，並將 NULL 值傳送到 sql_variant 資料行類型，
會因為目前不支援於 TVP 中插入具有資料行類型 sql_variant 的 NULL 值而發生例外狀況。


3) 使用 NTLM 驗證時

目前不支援同時啟用擴充保護與加密連線。

4) 使用 useFmtOnly 時

有一些功能問題與是由 SQL 剖析邏輯中的缺陷所造成。
如需更多詳細資料和因應措施的建議，請參閱 https://aka.ms/mssql-jdbc-usefmtonly。
