You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Phil Steitz (Jira)" <ji...@apache.org> on 2020/08/08 17:16:00 UTC

[jira] [Comment Edited] (DBCP-559) 数据库连接可以通过BasicDataSource类的close()方法进行关闭,但该类没有提供open()方法使得新建的数据库连接生效

    [ https://issues.apache.org/jira/browse/DBCP-559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17173447#comment-17173447 ] 

Phil Steitz edited comment on DBCP-559 at 8/8/20, 5:15 PM:
-----------------------------------------------------------

I am working on a PR with tests for this, though I will happily review any PRs that come in before I finish.   A [similar request|[https://lists.apache.org/thread.html/rf9006a5e3285bc32f0742ad4833c39852601305d5e56fc03dde60043%40%3Cusers.tomcat.apache.org%3E]] was recently posted to tomcat-user.

I am hoping that close followed by the simple open proposed in the attachment file (possibly also exposed as combined, "restart") will lead to
 # Idle connections get immediately closed (close contract)
 # Checked out connections get closed as they return (but abandoned connection cleanup stops for the pool being closed)
 # Any config changes made since initialization of running pool are applied to the new pool
 # New connections get sourced from a new pool that is initialized in "open"
 # No timer thread leaks or other untoward side effects

I will try to add tests to confirm.

 


was (Author: psteitz):
I am working on a PR with tests for this, though I will happily review any PRs that come in before I finish.   A [similar request|[https://lists.apache.org/thread.html/rf9006a5e3285bc32f0742ad4833c39852601305d5e56fc03dde60043%40%3Cusers.tomcat.apache.org%3E]] was recently posted to tomcat-user.

I am hoping that close followed by the simple open proposed in the attachment file (possibly also exposed as combined, "restart") will lead to
 # Idle connections get immediately closed (close contract)
 # Checked out connections get closed as they return (but abandoned connection cleanup stops for the pool being closed)
 # Any config changes made since initialization of running pool are applied to the new pool
 # New connections get sourced from a new pool that is initialized in "open"
 # No timer thread leaks or other untoward side effects

I will try to add tests to confirm.

 

> 数据库连接可以通过BasicDataSource类的close()方法进行关闭,但该类没有提供open()方法使得新建的数据库连接生效
> -------------------------------------------------------------------
>
>                 Key: DBCP-559
>                 URL: https://issues.apache.org/jira/browse/DBCP-559
>             Project: Commons DBCP
>          Issue Type: Improvement
>    Affects Versions: 2.8.0
>            Reporter: Wenzhi Ji
>            Priority: Major
>              Labels: ready-to-commit
>             Fix For: 2.8.0
>
>         Attachments: BasicDataSource.java, BasicDataSourceMXBean.java
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> 当前该开源软件具备的功能:若数据库连接被关闭(即closed置为true),则必须重启服务,才能使新的数据库连接生效(closed置为false)。
> 针对容灾场景,若数据库连接串发生变化,为了使新的数据库连接动态生效(热生效),不需要手工重启服务,建议该开源软件BasicDataSource类提供一个open()方法用于置closed = false;以使建立的数据库连接生效。
> 变更的代码见附件。
> 注:附件是基于2.7.0版本代码进行优化的。



--
This message was sent by Atlassian Jira
(v8.3.4#803005)