【问题标题】:Should I close a connection that came from a datasource?我应该关闭来自数据源的连接吗?
【发布时间】:2011-06-07 22:09:15
【问题描述】:

当我执行 dataSource.getConnection() 时,当我希望连接返回池(而不是关闭)时,调用 close 方法是返回池的连接还是实际关闭它?

【问题讨论】:

    标签: java jdbc connection-pooling


    【解决方案1】:

    当您在 DataSource 返回的连接上调用 close() 时,它会将其返回到池中以供其他线程使用。关闭连接会破坏池的用途。

    【讨论】:

    • 你为什么说:“关闭连接违背了池的目的。”如果关闭连接将其返回到池中,这应该是预期的行为?
    • 我的意思是如果 close() 实际上关闭了与数据库的物理连接,那么池连接没有意义。
    • 连接中尚未提交到数据库的任何未决事务会发生什么?数据源是否确保在将连接返回到池之前提交待处理的事务?
    • 我听不懂?我应该调用 close() 吗?!
    • 是的,你应该这样做。当关闭从 DataSource 获得的连接时,它将被自动池化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 2011-07-21
    • 2015-10-10
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    相关资源
    最近更新 更多