-
Notifications
You must be signed in to change notification settings - Fork 8.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
【已解决】sqlserver2008 连接中断后,可以自动重连问题解决 #1331
Milestone
Comments
你来提交一个Pull Request?最好今天,因为周末会发布新版本 |
行,今日提交。 |
提交Pull Request 一定要安装github桌面程序吗? 我在eclipse中 Push to Upstream (master) 报权限错误,了。 https://github.com/alibaba/druid.git: git-receive-pack not permitted。忘指教。 |
fork,push到自己的repository,pull request |
66666666666,新的版本都不存在这个问题了吗 |
不过我现在使用的1.1.4版本,在多数据源下使用(本地sqlserver2008 远程两个mysql)还会出现sqlserver断线之后不能重连的情况,是配置的有问题吗 |
|
老哥,这个问题当年是最终怎么解决的哦,请教一下 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
在实际项目(多数据源)中发现sqlserver连接中断后,无法支持自动重连,拿不到connect:
1.首先通过我的监控页面发现 sqlserver配置的连接池 连接有效性检查类名 为 null。
2.跟踪代码 com.alibaba.druid.pool.DruidDataSource.java initValidConnectionChecker() 方法中,
必须对应是“com.microsoft.jdbc.sqlserver.SQLServerDriver”才会实例化连接有效性检查类,那就是必须使用msbase.jar版本驱动,而我使用的是jtds-1.2.7.jar
3.解决方式A ,替换驱动为 (msbase.jar mssqlserver.jar msutil.jar)。ops!仍然无法解决,可能是我的数据库 是SQLSERVER2008的问题?
4.解决方式B,在2处initValidConnectionChecker()方法(889行)增加条件判断代码,使用jtds驱动也实例化MSSQLValidConnectionChecker.java()
5.使用jtds.jar测试业务通过,sqlserver断线后可自动重连。(模拟网络中断,又恢复网络的情况,每周有个业务系统凌晨要重启路由)
疑问:
1.三种 sqlserver 驱动 ,(msbase.jar mssqlserver.jar msutil.jar)、(sqljdbc4.jar)、(jtds-1.2.7.jar)
都调用 MSSQLValidConnectionChecker.java 作为校验类是否有其他问题?
2.另外必须配置validationQueryTimeout参数,默认为-1 ,不启动检查.
<property name="validationQueryTimeout" value="30000" />
3.请文少和其他大神评估是否有其他影响,希望采纳意见,我是在1.0.15版本下改的测试没问题,目前jtds-1.2.7.jar 驱动用的企业应该更多。
4.附spring-mybatis.xml 关于sqlserver的连接池配置
The text was updated successfully, but these errors were encountered: