The mssql-jdbc driver uses the keepAliveTime and keepAliveInterval socket options in order to facilitate logic to maintain idle connections to the server. However, this feature of maintaining idle connections by driver is only supported on Linux and Mac as the KEEPALIVE extended socket options are only supported on Linux and Mac within the JDK. In order to maintain feature parity, support for KEEPALIVE socket options need to be implemented within the JDK for Windows. KEEPALIVE extended socket options were originally implemented by
JDK-8194298 for Linux and Mac. The main JDK changes would be adding the required native Windows socket API calls in order to set the KEEPALIVE values.