连接池连接长时间不用,导致连接不能使用 问题情况连接池中有可用连接,但是长时间不调用下此再调用这个连接时,就会报错,而且用con.isClose()判断这个连接是可以用的.请问还有什么方法可以判断是否超时?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想问的不是在连接池中如何设置超时.而是当1个连接建立后,长时间没有调用,也没有关闭它,这个连接会被断开,再次使用就会报错.而这种被数据库断开的情况下, 在程序中要怎么判断呢?用conn.isClosed()方法判断不出来,这个方法返回的依然是可用的,但是实际上断开了. 我只知道mySql中可以在url中加个参数 好像是reConnection=true,但是oracle怎么搞呢 数据库连接缓冲池是为了降低每次建立/释放连接时的开销,故而,每次程序端归还回来的连接并不直接关闭,而是留给以后给其他程序再用。归还在池(pool)里,没有被使用的称为空闲(idle),被借出的,使用中的连接称为active。所以顾名思义,maxIdle者,代表当pool中的空闲连接达到此数值后,以后被归还的连接都回被直接释放,直到池中空闲连接数因为其他程序继续借出而重新低于maxIdle。此外,一般还会对idle的最长时间的设定,比如超过30秒,idle连接留着也浪费,就关掉而maxActive者,代表你能从这个pool中借出的最大连接的个数。在借出的时候,当池里有idle的,就用idle的,如果一个也没有,且未达到maxActive,就新建一个。假如已经达到maxActive这个数值后,根据不同的池种类和/或不同的设定,一般有以下几种:1 直接抛错2 让想要借出连接的线程等待一段时间,如果等不到,再抛错3 每隔一段检查一次pool,直到有可用连接,否则一直等下去4 永远可以拿到(视情况需要maxActive不设置或0或负) 我也遇到这样的情况,不知你的连接池是否有维护线程,我的处理办法的是check keepalive, 定义一个keepalive命令字,长时间不用的时候,发送或接收一下keepalive命令。数据库的话,执行一下简单的查询。供你参考。 有点迷惑 illegal character是什么问题? 一道小题 关于ClassNotFoundException 的问题 java串口通讯javax.comm的问题 我郁闷了一晚上的问题,哪位大侠帮帮忙看看啊~... JAVA 能否截获windows 消息? 比如键盘监听之类(用于同时操作相同得awt窗口) 请教一个用java访问xml的问题,急,在线等 如何写好一个非阻塞Socket服务器程序 我想定时执行(比如说早上1点)一个java程序,不知道教本怎么写,急,急,谢谢! 关于throws和try catch 的一点疑惑 游戏变成
我只知道mySql中可以在url中加个参数 好像是reConnection=true,但是oracle怎么搞呢
2 让想要借出连接的线程等待一段时间,如果等不到,再抛错
3 每隔一段检查一次pool,直到有可用连接,否则一直等下去
4 永远可以拿到(视情况需要maxActive不设置或0或负)
供你参考。