解决sqljdbc 连接 sqlserver 2008时在getConnection后停住的问题

今天出现一个问题,Java中,sqlserver连接不上,以前一直好好的程序,突然就跑不起来了。但是用sqlserver客户端还是可以连接的。说明db没问题。

调查了很久。最后想到jdk的版本,我把jdk改成32位的。就OK了。

原因还是不明。按道理jdbc是不区分32和64的。而且前阵子用64位的jdk,也是可以正常跑起来的。

奇怪了。。。


最后查明原因,不是因为64位和32位的关系,而是jdk版本的原因。jdk的1.6.29这个版本,不管是32位还是64位,连sqlserver2008都有问题。用了换个更新版本的jdk64位就OK了。



使用MyEclipse 1.6JDK + Sqljdbc4.jar 连接sqlserver 2008 R2时,走到

DriverManager.getConnection(connectionUrl);

之后就停在那里了,之后的log打印不出来,也不报任何异常;


[java]  view plain  copy
 print ?
  1. String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=MYDataBase;user=sa;password=123456";  
  2. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
  3. System.out.println("driver opened"); //这句每次都能打印  
  4. con = DriverManager.getConnection(connectionUrl);  
  5.   
  6. System.out.println("connected"); //这句Log就打印不出来,而且不报任何异常。改一下jdk版本到1.7就好了。  



于是换了个eclipse试一下,一下就连上了。

原因分析:

换的eclipse使用jdk是1.7,而MyEclipse默认是1.6, 问题找到了,将MyEclipse的编译和运行环境都改为1.7就行了。

如何修改为1.7,可以参考这个网址 http://www.cnblogs.com/brolanda/p/4230636.html 


多简单的一个开始啊,居然就给了个下马威;



http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7105007

http://stackoverflow.com/questions/7841411/driver-getconnection-hangs-using-sqlserver-driver-and-java-1-6-0-29/

https://forums.oracle.com/forums/thread.jspa?messageID=9954398&tstart=0

http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/97dce8fd-6487-4bca-80b0-492167db3e0d

http://blogs.msdn.com/b/jdbcteam/archive/2012/01/19/patch-available-for-sql-server-and-java-6-update-30.aspx

http://www.google.com.hk/webhp?hl=zh-CN&sourceid=cnhp#hl=zh-CN&safe=strict&site=webhp&q=enableCBCProtection&oq=enableCBCProtection&gs_l=serp.3...4841.9732.2.10164.2.2.0.0.0.0.238.420.0j1j1.2.0...0.0...1c.1.rJVIv2pMyxI&bav=on.2,or.r_gc.r_pw.&fp=2d6eb67ba785cc25&biw=1280&bih=885

https://confluence.atlassian.com/plugins/viewsource/viewpagesrc.action?pageId=284365810 




再tomcat 配置文件里面,catalina.bat  修改这个文件,再90行左右 添加 。

set JAVA_OPTS= -Djsse.enableCBCProtection=false



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值