LOG.info("put physical connection to pool failed."); } errorCount = 0; if (closing || closed) { break; } } } CreateConnectionThread的run()方法整体就是在一个死循环中不断的等待,被唤醒,然后创建线程。当一个物理连接被创建出来后,会调用DruidDataSource#put方法将其放到连接池connections中,put()...
boolean result = put(connection); if (!result) { JdbcUtils.close(connection.getPhysicalConnection()); LOG.info("put physical connection to pool failed."); } errorCount = 0; if (closing || closed) { break; } } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ...
JdbcUtils.close(connection.getPhysicalConnection()); LOG.info("put physical connection to pool failed."); } errorCount = 0; // reset errorCount } } } 这是一个多线程的类,而run方法里面设置了没有限制的 for 循环for (;;) {}, 而日志报错定位的信息: connection = createPhysicalConnection(); ...
boolean result = put(connection); if (!result) { JdbcUtils.close(connection.getPhysicalConnection()); LOG.info("put physical connection to pool failed."); } errorCount = 0; // reset errorCount } } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18....
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.1.10.jar:1.1.10] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1560) ~[druid-1.1.10.jar:1.1.10] ...
com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1560) ~[druid-1.1.10.jar:1.1.10] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1623) ~[druid-1.1.10.jar:1.1.10] at com.alibaba.druid.pool....
LOG.info("put physical connection to pool failed."); } errorCount =0;// reset errorCount} } } 这是一个多线程的类,而run方法里面设置了没有限制的 for 循环for (;;) {}, 而日志报错定位的信息: connection= createPhysicalConnection(); ...
if (connection == null) { continue; } boolean result = put(connection); if (!result) { JdbcUtils.close(connection.getPhysicalConnection()); LOG.info("put physical connection to pool failed."); } errorCount = 0; // reset errorCount } } } 从源码中我们可以看到,线程中使用了无参for循环...
(true);continue;}catch(Errore){LOG.error("create connection Error",e);setFailContinuous(true);break;}if(connection==null){continue;}boolean result=put(connection);if(!result){JdbcUtils.close(connection.getPhysicalConnection());LOG.info("put physical connection to pool failed.");}errorCount=0...
info("put physical connection to pool failed."); } break; } } } CreateConnectionTask主要是创建physicalConnection,然后放到connections中。在emptyWait为true的时候会根据条件执行empty.await() CreateConnectionThread 代码语言:javascript 复制 public class CreateConnectionThread extends Thread { public Create...