quge_name_harder 2019-03-13 16:27 采纳率: 0%
浏览 5170

java.sql.SQLRecoverableException: Closed Connection

各位大佬,求教,我使用DBCP连接池时出现
java.sql.SQLRecoverableException: Closed Connection
报错。经过百度后知道,该错误是连接长时间不用,自动断开了。再次使用该连接时就会出现这个错误。
目前我修改了DBCP的配置文件,如下。请问这样配置之后能不能解决该问题,我使用的是oracle数据库

driverClassName= 
url= 
username= 
password=  

# 连接池启动时创建的初始化连接数量 
initialSize=20 

# 连接池中可同时连接的最大连接数量 
maxActive=20 

# 连接池中最大的空闲连接数量,超过的空闲连接将被释放,设置为负数表示不限制 
maxIdle=8 

# 连接池中最小的空闲连接数量,低于这个数量将创建新的连接 
minIdle=5 

# 最大等待时间,当没有可用连接时,连接池等待连接释放的最大时间 
maxWait=10000 

# 是否在归还到池中进行检验 
testOnReturn=false 

# 校验语句,必须是查询语句,至少查询一列,设置了它onBorrow才会生效 
validationQuery=select 1 from dual 

# 连接是否被空闲连接回收器(如果有)进行检验.如果检测失败, 
# 则连接将被从池中去除.设置为true后如果要生效,validationQuery参数必须设置为非空字符串 
testWhileIdle=true 

# 从池中取出连接时完成校验 ,验证不通过销毁这个connection,默认为true, 
testOnBorrow=false 

# 每30秒运行一次空闲连接回收器 
timeBetweenEvictionRunsMillis=30000 

# 连接在池中保持空闲而不被空闲连接回收器线程 
# (如果有)回收的最小时间值,单位毫秒 
minEvictableIdleTimeMillis=1800000 

#在每次空闲连接回收器线程(如果有)运行时检查的连接数量 
numTestsPerEvictionRun=3 

# 校验查询时长,如果超过,认为校验失败 
validationQueryTimeout=1 

# 设置是否自动提交 
defaultAutoCommit=flase 

  • 写回答

2条回答 默认 最新

  • ashin8032 2019-03-13 16:33
    关注

    池化的链接都会有一个回收时间吧。
    一个问题是什么样的需求会长时间占用链接,而且还不使用?
    如果在不使用的时候,释放掉;需要用的时候再获取,这样应该就不会有问题了。
    而,如果真的有这样的需求的话,或者可以单独的使用长链接进行连接,不要用池化的链接了。
    希望能帮到你。

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!