transaction; nested exception is com.alibaba.druid.pool.DataSourc"/>
Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.DataSourc
现象:程序已启动得时候会 正常得跑一会儿,过不了一小会儿,就会出现这个错误(测试环境才会出现)
出现这个错误得原因:
1、出现在测试环境下使用 多线程, 多线程处理得逻辑中有 使用连接池连接数据库得操作(或者查询,插入等等)
2、因为主线程中运行一会儿,走完之后就会关闭数据库连接池,而多线程中得程序还在跑着
解决办法:
1:不在测试环境下运行,改为正常得controler调用service或者dao,这样调用,因为主程序是服务的形式启动,所以连接池不会关闭(服务不关闭,连接池就不会关闭)
2:在让主线程等待这个线程运行完了之后再结束
就是将多线程得处理逻辑,在一个新得线程中操作,
Thread aa=new Thread(new Runnable(){
@Override
public void run() {在这里处理线程池处理程序
}
})
aa.join();
具体就是在主线程中加入
线程aa.join();
更多推荐
Could not open JDBC Connection for transaction; nested exception is com.alibaba.
发布评论