2010-01-28 192 views
1

我们有一个明确定义的问题,指出了JDK 1.6(“sqljdbc4.jar”)的Microsoft JDBC 2.0驱动程序问题。MS Jdbc驱动程序sqljdbc 2.0驱动程序无法连接到SQL Server 2008

我可能是错的。我以前错了。我想看看我是否缺少任何东西。有什么见解?任何人见过这个?

USECASE:

  • 使用蚁族 “SQL” 任务来运行一个简单的SQL查询。所有查询都失败
  • jdbc驱动程序在连接时会抛出异常:“服务器版本不受支持,目标服务器必须是SQL Server 2000或更高版本。” (以下堆栈跟踪摘录)
  • 能正常工作的SQL Server版本的2000和2005年

数据:

  • 唯一的 '玩家' 这里有一个),蚂蚁和b)的JDBC驱动程序。没有自定义代码。
  • 我们使用2.0驱动程序,即从此文件sqljdbc_2.0.1803.100_enu.tar.gz
  • 我们使用'sqljdbc4.jar'版本,即JDK6所需的版本。 MD5SUM是:249734b9b7dafaccd92de99eee95d7d6
  • SQL Server的性能如下:产品版本:10.0.2531.0
  • Productlevel:SP1
  • 版本:企业版
  • 我们使用JDBC URL看起来像这样:“JDBC :SQLSERVER:// prodsql2;” (即没有额外的属性,在年底通过)

堆栈跟踪:

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 org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java:31 

在此先感谢,

法案

回答

0

文件下的 “d” 为“D'哦! !!”

原来有人曾在不久前在sqljdbc.jar检查$ ANT_HOME/lib目录

我们在我们的应用程序li​​b目录更新sqljdbc.jar,并指出了SQL任务明确到库中。

< sql classpath='jdbc.classpath' .... /> 

实际上,Ant会忽略类路径设置任务,如果它在$ ANT_HOME/lib中找到它,则会加载该类。

此日志消息让我失望。它暗示蚂蚁实际上看起来“在我指定的地方”。实际上它在ANT_HOME/lib中查找。

Loading com.microsoft.sqlserver.jdbc.SQLServerDriver using AntClassLoader with classpath c:\projects\devtools\mssql_jdbc\sqljdbc_2.0.1803.100\sqljdbc_2.0\enu\sqljdbc4.jar 

对不起。

bill