我希望使用druid数据源以及spring的一些注解(@Autowired、@transactional等)来对项目进行分层,但是在多线程的环境下使用druid发现了一些问题不知道是不是我的配置问题,
在同时开启100个线程,并且maxActive<=100的时候DruidDataSource获取connection会造成所有线程全部在running状态而在maxActive>100的时候所有的线程都正常执行并且顺利释放了连接。无论怎么测试都是如此的情况一旦线程数大于maxActive,获取connection的时候便会出现问题。
druid.initialSize = 3 druid.maxActive = 4 druid.poolPreparedStatements = false druid.maxOpenPreparedStatements = -1 druid.validationQuery = select 1 from dual druid.testOnBorrow = false druid.testOnReturn = false druid.testWhileIdle = true druid.timeBetweenEvictionRunsMillis = 300000 druid.connectionInitSqls =select 1 from dual druid.asyncCloseConnectionEnable=true