首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UCP工作算法

UCP工作算法
EN

Stack Overflow用户
提问于 2018-02-23 15:04:48
回答 1查看 155关注 0票数 0

我使用Oracle的通用连接池。我参与这个计划

代码语言:javascript
复制
class Action {
  static PoolDataSource initPool() {
    PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
    pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
    pds.setURL(".........");
    pds.setUser("user");
    pds.setPassword("pass");
    pds.setInitialPoolSize(0);
    return pds;
  }

  static final PoolDataSource pds = initPool();

  void doAction() {
    Connection connection = pds.getConnection();
    ..........
    connection.close();  // ????
  }
}

您需要在connection.close()完成后调用doAction,还是整个池的工作意识都会丢失,那里的连接应该一直保持打开状态,直到它们自己在超时时关闭为止?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-23 15:21:20

是的医生把它们关起来。它实际上并没有关闭,而是返回到下一个getConnection()调用的连接池。

完整的文档在这里:01/java.112/e12265/connect.htm#CHDJCGGB

不再使用的借来的连接应该返回到池中,以便它们可以用于下一个连接请求。close方法用于关闭连接并自动将连接返回到池。close方法不会物理地从池中删除连接。 未关闭的借用连接仍然是借来的;后续的连接请求将导致在没有可用连接的情况下创建新连接。此行为可能导致创建许多连接,并可能影响系统性能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48950760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档