JDBC 连接数据库的保持连接alive

loukcn 2012-03-13 04:06:13
如题,要用JDBC从数据库sql下来数据,但因目标表超大,查询时间非常长,等不到结果就会超时断了数据库连接,请问各位有没有什么办法能让数据库连接keep alive到结果出来?
...全文
556 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
loukcn 2012-03-15
  • 打赏
  • 举报
回复
问题结决了,应该是和服务器的物理连接连接长时间等待时被路由器给断了连接。我就加了个进程每隔120000ms 就ping 一下目的服务器,保持物理连接始终处于活动状态。
beiouwolf 2012-03-14
  • 打赏
  • 举报
回复
那只能说明你的sql语句没优化好,造成全局查询了
正常情况下索引设计,sql语句优化的话,也不会太慢
loukcn 2012-03-14
  • 打赏
  • 举报
回复
而且我觉得像其他大型数据库也会有这种情况的发生,一条sql下去,3、4个小时才能出来结果
loukcn 2012-03-14
  • 打赏
  • 举报
回复
再补充一下,有个开源的ETL工具 kettle 就能保持和400的连接直到等到结果返回,不知道是怎么实现的
loukcn 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wula0010 的回复:]

引用 6 楼 loukcn 的回复:
补充一下,结果的数据不多,也就100来行,所以应该不会出现内存溢出的问题


说明你的程序查询有问题啊,从3000万条数据里查100条数据,如果数据库表索引、优化做的好,sql写的没问题,应该就是几秒的事情........
[/Quote]
可能是我解释的不明确,是从超过3000万的数据量里按照某个字段group by,再把某个字段sum,最终得到成100来条汇总结果,这3000万条记录是得挨个过一遍看是否符合where条件的
dxqrr 2012-03-13
  • 打赏
  • 举报
回复
这个在数据库中应该可以设置超时时间的
wula0010 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 loukcn 的回复:]
补充一下,结果的数据不多,也就100来行,所以应该不会出现内存溢出的问题
[/Quote]

说明你的程序查询有问题啊,从3000万条数据里查100条数据,如果数据库表索引、优化做的好,sql写的没问题,应该就是几秒的事情........
superhill 2012-03-13
  • 打赏
  • 举报
回复
用数据库连接池?
loukcn 2012-03-13
  • 打赏
  • 举报
回复
补充一下,结果的数据不多,也就100来行,所以应该不会出现内存溢出的问题
loukcn 2012-03-13
  • 打赏
  • 举报
回复
其实是和AS400的数据库连接,是基于3千万条以上的记录数,加上条件直接在400上查询都得将近一个小时左右,要是通过JDBC访问数据库,400会等不到结果就把连接给掐了。按照之前在网上查询的结果说是发送虚查询来保持连接,但是没人说怎么做到。所以求助来了。
mengyalizuopeng 2012-03-13
  • 打赏
  • 举报
回复
你是不看错了,不是断了连接,是内存泄露吧 数据太大。。。
orangemike 2012-03-13
  • 打赏
  • 举报
回复
貌似设置超时的问题上,统一的不是很好,给具体问题具体分析了.
尝试一下DriverManager.setLoginTimeout();
成一粒 2012-03-13
  • 打赏
  • 举报
回复
我想一般的数据查询不会这么大吧。要么就是你的查询语句有问题。
如果真的有这么大。就用分页查询。先取出一部分,带到需要时再去取出下一部分
loukcn 2012-03-13
  • 打赏
  • 举报
回复
没人知道吗?
目前开源世界中暂没有一个比较成熟的zookeeper-monitor,公司内部的各个zookeeper运行也都是无监控,无报表状态。于是开始zookeeper监控这块工作。 目前zookeeper-monitor能做哪些事情,讲到这个,首先来看看哪些因素对zookeeper正常工作比较大的影响: 用于zookeeper写日志的目录要有足够大小,并且强烈建议在单独的磁盘(挂载点)上,这是影响ZK性能最大因素之一。 连接数。 注册的Watcher数。 ZNode是否可读,可写。 ZK事件通知的延时是否过大。 围绕以上几点展开,完成了taokeeper一期的开发,目前主要完成以下方面的监控: l CPU/MEM/LOAD的监控 l ZK日志目录所在磁盘剩余空间监控 l 单机连接数的峰值报警 l 单机 Watcher数的峰值报警 l 节点自检:是指对集群中每个IP所在ZK节点上的PATH: /YINSHI.MONITOR.ALIVE.CHECK 定期进行三次如下流程 : 节点连接 – 数据发布 – 修改通知 – 获取数据 – 数据对比, 在指定的延时内,三次流程均成功视为该节点处于正常状态。 如何安装部署 一、直接部署 1. 下载taokeeper.sql,并初始化Mysql数据库 2. 下载taokeeper-monitor.zip文件,解压到tomcat的webapps目前下,确保最后目录结构如下: %TOMCAT_HOME%\webapps\taokeeper-monitor\WEB-INF 3. 编辑 %TOMCAT_HOME%\webapps\taokeeper-monitor\WEB-INF\logback.xml 以下配置: 4. 编辑 %TOMCAT_HOME%\webapps\taokeeper-monitor\WEB-INF\spring-beans.xml

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧