This article provides answers to some of the most frequently asked questions about the Microsoft SQL Server JDBC Driver.

1. Question: What is the name of the latest Microsoft JDBC Driver?
Answer: The name of the JDBC driver no longer contains the version identifier of SQL Server. As a result, the latest version of the JDBC driver is Microsoft SQL Server JDBC Driver version 2.0.

2. Question: What is the supportability matrix for the Microsoft SQL Server JDBC Driver?
Answer: The following table lists the Microsoft SQL Server JDBC Driver versions and which SQL Server databases they can connect to:
| Microsoft SQL Server JDBC Driver | SQL Server 2000 | SQL Server 2005 | SQL Server 2008 |
| version 1.0 | Supported | Supported | Not supported |
| version 1.1 | Supported | Supported | Not supported |
| version 1.2 | Supported | Supported | Supported1 |
| version 2.0 | Supported | Supported | Supported1 |
1Microsoft SQL Server JDBC Driver version 2.0 and Microsoft SQL Server 2005 JDBC Driver version 1.2 can connect to SQL Server 2008 as a down-level client. When down-level conversions are allowed, applications can execute queries and perform updates on the new SQL Server 2008 data types, such as time, date, datetime2, datetimeoffset, and FILESTREAM. For more information about how to use these new data types with the JDBC driver, see Working with SQL Server 2008 Date/Time Data Types using JDBC Driver and Working with SQL Server 2008 FileStream using JDBC Driver. For more information about the down-level compatibility of these new data types, see Using Date and Time Data and FILESTREAM Support topics in SQL Server Books Online.

3. Question: What should I know when upgrading to Microsoft SQL Server JDBC Driver version 2.0?
Answer: Microsoft SQL Server JDBC Driver version 2.0 supports both JDBC 3.0 and JDBC 4.0. To support backward compatibility and possible upgrade scenarios, the JDBC Driver version 2.0 includes two JAR class libraries in the installation package: sqljdbc.jar and sqljdbc4.jar.
The sqljdbc.jar class library provides support for JDBC 3.0 and requires a Java Runtime Environment (JRE) of version 5.0. The sqljdbc4.jar class library provides support for JDBC 4.0 and requires a Java Runtime Environment (JRE) of version 6.0 or later. The sqljdbc4.jar includes all of the features of the sqljdbc.jar as well as the new JDBC 4.0 methods. For more information about which JAR file to choose, see System Requirements for the JDBC Driver.

4. Question: Should I make any code changes in my application to use Microsoft SQL Server JDBC Driver version 2.0 with SQL Server 2008?

5. Question: Should I make any code changes in my application after upgrading to Microsoft SQL Server JDBC Driver version 2.0?
Answer: In JDBC API 4.0, the DriverManager.getConnection method is enhanced to load JDBC drivers automatically. Therefore, applications do not need to call the Class.forName method to register or load the driver when using the
sqljdbc4.jar class library. For more information, see
Using the JDBC Driver.

6. Question: Is the Microsoft SQL Server JDBC Driver free?
Answer: The Microsoft SQL Server JDBC Driver is available to users of all Microsoft SQL Server SKUs at no additional charge

7. Question: Can I redistribute the Microsoft SQL Server JDBC Driver?

8. Question: Can I use the Microsoft SQL Server JDBC Driver to access Microsoft SQL Server from a Linux computer?
Answer: The Microsoft SQL Server JDBC Driver is designed to work on any operating system that supports the use of a Java Virtual Machine (JVM). However, only Sun Solaris, SUSE Linux, and Windows XP or later operating systems are officially supported.

9. Question: Does the Microsoft JDBC Driver support Secure Sockets Layer (SSL) encryption?
Answer: The Microsoft SQL Server 2005 JDBC Driver version 1.2 or later supports Secure Sockets Layer (SSL) encryption. For more information, see
Using SSL Encryption.

10. Question: Which authentication types are supported by the Microsoft SQL Server JDBC Driver?
Answer: The Microsoft SQL Server JDBC Driver supports Windows Integrated Authentication and SQL Server Authentication.

11. Question: Does the Microsoft SQL Server JDBC Driver provide any authentication support for Windows?
Answer: The Microsoft SQL Server JDBC driver supports the use of Type 2 integrated authentication on Windows operating systems with SQL Server 2000, SQL Server 2005, and SQL Server 2008. For more information, see
Building the Connection URL.

12. Question: Does the Microsoft SQL Server JDBC Driver support Internet Protocol version 6 (IPv6) addresses?
Answer: The Microsoft SQL Server JDBC driver supports the use of IPv6 addresses with the connection properties collection, and with the
serverName connection string property. For more information, see
Building the Connection URL.

13. Question: What is adaptive buffering?
Answer: Adaptive buffering is introduced starting with Microsoft SQL Server 2005 JDBC Driver version 1.2, and is designed to retrieve any kind of large-value data without the overhead of server cursors. The adaptive buffering feature of the Microsoft SQL Server JDBC Driver provides a connection string property,
responseBuffering, which can be set to "adaptive" or "full". Starting with the JDBC Driver version 2.0, the default behavior of the driver is "adaptive". In other words, in order to get the adaptive buffering behavior, your application does not have to request the adaptive behavior explicitly. In the version 1.2 release, however, the buffering mode was "full" by default and the application had to request the adaptive buffering mode explicitly. For more information, see
Using Adaptive Buffering topic and the blog
What is adaptive response buffering and why should I use it?.

14. Question: Does the Microsoft SQL Server JDBC Driver support connection pooling?
Answer: The Microsoft SQL Server JDBC Driver provides support for Java Platform, Enterprise Edition 5 (Java EE 5) connection pooling. The JDBC driver implements the JDBC 3.0 required interfaces to enable the driver to participate in any connection-pooling implementation that is provided by middleware vendors. Middleware such as Java EE 5 application servers frequently provides compliant connection-pooling facilities. The JDBC Driver participates in pooled connections in these environments. For more information, see
Using Connection Pooling.

15. Question: Does the Microsoft SQL Server JDBC Driver provide its own connection pooling implementation?
Answer: Although the Microsoft SQL Server JDBC driver supports Java EE 5 connection pooling, it does not provide its own pooling implementation. The JDBC Driver relies on third-party Java application servers to manage the connections.

16. Question: What kind of support is available for the Microsoft JDBC Driver from Microsoft?
Answer: Full support is available. We may require you to reproduce the issue outside any third-party application servers. If the issue cannot be reproduced outside the hosting Java EE 5 container environment, you will need to involve the related third-party so that we can continue to assist you.
In addition, the Microsoft SQL Server JDBC Driver is designed to work on any operating system that supports the use of a Java Virtual Machine (JVM). Only Sun Solaris, SUSE Linux, and Windows XP or later operating systems are officially supported. Support for other JVMs may require reproducing the issue on a supported operating system and JVM.

17. Question: Is the Microsoft SQL Server JDBC Driver certified for use with any third-party application servers?
Answer: The Microsoft SQL Server JDBC Driver has been tested against various major application servers including BEA WebLogic, IBM WebSphere, and JBoss. Note that the version 1.2 of the JDBC driver is certified with IBM WebSphere 6.1.

18. Question: How do I enable tracing?
Answer: The Microsoft SQL Server JDBC Driver supports the use of tracing (or logging) to help resolve issues and problems with the JDBC Driver when it is used in your application. To enable the use of client-side JAR tracing, the JDBC Driver uses the logging APIs in java.util.logging, which provides a set of classes for creating Logger and LogRecord objects. For more information, see
Tracing Driver Operation. For server-side XA tracing, see
Data Access Tracing in SQL Server.

19. Question: I cannot find the SQL Server 2000 JDBC driver, is it available for download anywhere?
Answer: Microsoft SQL Server has been continually improving its Java connectivity support. As such we highly recommend you work with the latest version of our JDBC driver. The driver version i.e. SQL Server 2000 JDBC driver, is no longer available for download (please note that the support for the this driver will officially end on July 9, 2010). To download the latest JDBC drivers and additional information see:
If you would like to provide feedback to the JDBC team, need advice on which version to download, or would like to communicate with the JDBC team, please feel free to do so here.