冰果英语
testonborrowmysql_数据库连接池配置testOnBorrow
背景
前段时间做系统压测,发现DB的CPU使⽤率飙升很严重,排查后发现是⼀个配置testOnBorrow由fal修改为true导致。怎么对性能影响这么⼤?需要好好了解⼀下。
testOnBorrow含义
国有资产管理体制testOnBorrow:如果为true(默认为fal),当应⽤向连接池申请连接时,连接池会判断这条连接是否是可⽤的。
怎么跟老板提涨工资>大学规划书怎么写
testOnBorrow=fal可能导致问题
假如连接池中的连接被数据库关闭了,应⽤通过连接池ge tConnection时,都可能获取到这些不可⽤的连接,且这些连接如果不被其他线程回收的话;它们不会被连接池废除,也不会重新被创建,占⽤了连接池的名额,项⽬如果是服务端,数据库链接被关闭,客户端调⽤服务端就会出现⼤量的timeout,客户端设置了超时时间,会主动断开,服务端就会出现clo_wait。
连接池如何判断连接是否有效的?
常⽤数据库:使⽤${DBNAME}ValidConnectionChecker进⾏判断,⽐如Mysql数据库,使⽤MySqlValidConnectionChecker的isValidConnection进⾏判断
王斗其他数据库:则使⽤validationQuery判断全球变暖英语
关于新年的诗
验证不通过则会直接关闭连接,并重新从连接池获取下⼀条连接。
总结
>隔水炖盅怎么用