老平台迁移过程中出现的MSSQL数据库接连问题
来源:互联网 发布:壮语 泰语 知乎 编辑:程序博客网 时间:2024/04/29 13:55
公司的一较老的平台因为更换服务器要进行迁移,在自己接手后因为该平台不怎么使用就没管过它,但近段时间因为要更换服务器,需要把该服务迁移到新服务器上去,在迁移的过程中出现了一些问题。
该服务器因搭建较早,使用的是 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的配置文件中的数据库接接部分做了更改
原来:
<res-ref-name>jdbc/mssql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<init-param url="jdbc:microsoft:sqlserver://192.168.106.xx:1433;DatabaseName=xxxxxx"/>
更改后:
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<init-param url="jdbc:sqlserver://192.168.106.xx:1433;DatabaseName=xxxxxx"/>
重新启动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访问正常,数据库接接正常。
大功告成,收工!
该服务器因搭建较早,使用的是 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的配置文件中的数据库接接部分做了更改
原来:
<res-ref-name>jdbc/mssql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<init-param url="jdbc:microsoft:sqlserver://192.168.106.xx:1433;DatabaseName=xxxxxx"/>
更改后:
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<init-param url="jdbc:sqlserver://192.168.106.xx:1433;DatabaseName=xxxxxx"/>
重新启动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
0 0
- 老平台迁移过程中出现的MSSQL数据库接连问题
- 在迁移数据库的过程中SQLServer SDE的问题
- 水晶报表在网站迁移过程中出现的问题及解决方法
- QT 程序发布或迁移过程中出现的问题及解决方法
- 网站迁移过程中遇到的问题
- 老服务器迁移遇到的问题
- 网站后台改版,迁移老网站中Access数据库中新闻到新网站的方法
- 网站后台改版,迁移老网站中Access数据库中新闻到新网站的方法
- C++中cin gets接连使用问题
- 抓取Android平台数据包之tcpdump 工具的使用过程中出现的问题
- AndroidStudio中使用老版本Gradle出现的问题
- ccs平台 28335mcu 编程过程中出现RAM不够的问题,修改.cmd文件扩容
- 如何把dmp文件导入oracle12c中,并在java中实现数据库的接连
- eclipse迁移到studio中出现的问题
- [MSSQL]sqlserver数据库出现置疑的解决办法
- 平台搭建中出现的小问题
- iPhone8接连出现充电等问题,问题扩大将被禁上飞机
- 酷宝默认的XML数据迁移至MSSQL数据库
- 婚后女性家庭应该如何理财生活
- 静态链表的总结
- CKeditor加入中文字体 转
- 分辨率
- Oracle数据库监听配置
- 老平台迁移过程中出现的MSSQL数据库接连问题
- 计算几何的模板
- Hibernate与iBATIS的比较
- FTP常用命令
- 2.1.18 Climbing Stairs
- Linux常用性能调优工具索引
- 编程之美--二分查找算法
- xib与nib的区别
- OCP 1Z0 053 253