[
https://issues.apache.org/jira/browse/DBCP-559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17173447#comment-17173447
]
Phil Steitz commented on DBCP-559:
----------------------------------
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)