Java:删除';打印';语句在从数据源请求连接时导致超时异常?
有人能就以下Java一般问题提供建议吗 下面是一些伪代码(异常处理等已删除)来表示我遇到的问题:Java:删除';打印';语句在从数据源请求连接时导致超时异常?,java,connection-pooling,Java,Connection Pooling,有人能就以下Java一般问题提供建议吗 下面是一些伪代码(异常处理等已删除)来表示我遇到的问题: public void initializeConnection(DataSource dataSource) { // Declare collection to hold all connections Collection<Connection> pool = new ArrayList<Connection>(); // Loop thro
public void initializeConnection(DataSource dataSource) {
// Declare collection to hold all connections
Collection<Connection> pool = new ArrayList<Connection>();
// Loop through all connections
int i = 0;
while(i <= dataSource.getMaxActive()){
Connection conn = dataSource.getConnection();
// do something with connection, then add it to a collection
pool.add(conn)
i++;
// REMOVE THIS PRINT OUT AND CODE THROWS GETCONNECTION TIMEOUT EXCEPTION
System.out.println( i );
}
// Traverse through the collection and close all connections
}
public void initializeConnection(数据源数据源){
//声明集合以保留所有连接
集合池=新的ArrayList();
//通过所有连接进行循环
int i=0;
while(如果调用dataSource.getConnection()则为i)
多次从同一线程获得相同的连接,因为数据源实现通过ThreadLocal将其绑定到线程,并且它会注意到您已经收到了连接。因此,我怀疑此代码是否真的符合您的要求
如果不是这样,那么代码将至少执行maxActive+1次块,这是一次太频繁了