The server version is not supported.
Applies to: Microsoft SQL Server 2008 R2, Linux Red Hat, Oracle
Problem Description.
We have a stored procedure on a Oracle server that we run as a cron on
Linux. From there we run a stored procedure on a SQL Server instance. The cron was running
successfully for a SQL Server 2005 instance, but started to fail when we
upgraded the SQL Server instance to SQL Server 2008 R2. The JDBC connection was
throwing the following error:
Exception in thread "main"
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC
Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException:
The server version is not supported. The target server must be SQL Server 2000
or later.
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The server version
is not supported. The target server must be SQL Server 2000 or later.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown
Source)
at com.microsoft.sqlserver.jdbc.DBComms.Prelogin(Unknown Source)
at com.microsoft.sqlserver.jdbc.DBComms.<init>(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown
Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown
Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:140)
at
org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:291)
at
org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:277)
at
org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:259)
at
org.springframework.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:240)
at
org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:112)
at
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
at
org.springframework.jdbc.core.support.JdbcDaoSupport.getConnection(JdbcDaoSupport.java:119)
...
XXXXX Job Finished ------------- /
Solution.
When we downloaded and installed Microsoft SQL Server JDBC Driver 3.0 from the
following link, the cron ran successfully.
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21599
We followed these instructions to install the driver:
Installation Instructions for the UNIX version of the JDBC Driver
1. Download sqljdbc_<version>_<language&.tar.gz to a temporary directory.
2. To unpack the zipped tar file, navigate to the directory where you want the
driver unpacked and type gzip -d sqljdbc_<version>_<language>.tar.gz.
3. To unpack the tar file, move it to the directory where you want the driver
installed and type tar –xf sqljdbc_<version>_<language>.tar.
4. After the package unpacks, open the JDBC Help System by opening %InstallationDirectory%/Microsoft
SQL Server JDBC Driver 3.0/sqljdbc_<version>/<language>/help/default.htm. This
will display the help system in your default Web browser.