|
公司的一较老的平台因为更换服务器要进行迁移,在自己接手后因为该平台不怎么使用就没管过它,但近段时间因为要更换服务器,需要把该服务迁移到新服务器上去,在迁移的过程中出现了一些问题。 该服务器因搭建较早,使用的是 win2003server,msserver2000的数据库,WEB服务器用的是resin2.1.13,新的服务器装的是win2008server,mserver2005,WEB服务器使用TOMCAT7,在数据库迁移过程中很顺利,没有发现什么问题,但发现启动了WEB之后没法访问,后来确定是WEB中的类对新的一些特性不支持。 没办法只能换成和原来resin版本一样的,配置也是用原来的,只是把web目录的路径改了一下,数据库的连接改了一下,想这样肯定没问题了,于是把WEB开启,页面没问题,登陆也没问题,但有些地方会报数据库连接错误 Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (""): 数据类型 0x38 未知。 在网上搜了一下,有的说是MSSERVER2000到MSSERVER2005升级过程中数据库的JDBC连接有变化,要用新的 数据库连接的JAR包,于是在微软的网官下载了一个:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 当时还有一个问题比较奇怪,同一个数据库为什么有的地可以连接,有的地不能连接呢,进到程序里查了一下才发现,原来同一个数据库用了两种不同的连接方式,一种JDBC,一种hibernate,怪不得连同一个库,有一个正常,有一个会出问题。 把微软官方的包下载了之后把 sqljdbc.jar文件拷贝到resin的lib目录下,并且把resin的配置文件中的数据库接接部分做了更改 原来: 更改后: 重新启动WEB服务后,还是报错,提示数据库连接错误,查看错误提示,这次的提示比较明显 java.lang.UnsupportedOperationException: 此驱动程序不支持 Java Runtime Environment (JRE) 1.6 版。请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库。 直接把原来放到resin的lib目录的sqljdbc.jar删除,把微软官方下载包里的 sqljdbc4.jar放到 resin的lib目录下,后新启动 resin服务,WEB访问正常,数据库接接正常。 大功告成,收工! over,over 转自:http://www.dba365.net/forum.php?mod=viewthread&tid=63&extra=page%3D1 |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24070544/viewspace-1253241/ ,如需转载,请注明出处,否则将追究法律责任。