使用线程池插入数据报Could not open JDBC Connection for transaction 异常
使用线程池插入数据报Could not open JDBC Connection for transaction 异常 Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.DataSourceClosedException: dataSource already closed at Fri Sep 01 18:02:49 CST 2017 原因分析 这个异常是因为项目数据源已经被关闭了而线程无法插入数据到数据库。 因为这个是测试案例,在开发过程中主线程把任务丢给线程池之后自己就直接执行完毕导致关闭了数据源。在实际生产中主线程并不会关闭,所以不会出现这个问题。 解决方案 在主线程把任务丢进线程池后睡一会,待线程池处理完数据再关闭进程、关闭数据源。 try { Thread.currentThread().join(); } catch (InterruptedException e) { e.printStackTrace(); } 错误信息 2019-02-15 10:45:39.471 INFO 26352 --- [ Thread-4] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down