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

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
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用