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

2020-08-09 Thread Phil Steitz (Jira)


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

Phil Steitz edited comment on DBCP-559 at 8/9/20, 6:44 PM:
---

PR is [here|https://github.com/apache/commons-dbcp/pull/50].
 * One thing missing in the list above, but made clear in javadoc is that 
connections checked out when restart is invoked don't count in the "new" pool's 
metrics. So for example if there are 3 out when restart or close - start is 
called, there may be as many as maxTotal + 3 out until the old ones get 
returned. It would be a little complicated to try to keep those connections in 
the post-restart counts.
 * I included no-op defaults for start (called "open" above) and restart in the 
interface spec to preserve backward compatibility. Any better ideas on how to 
handle that welcome.
 * I did not include eviction timer leak tests or much else to verify no side 
effects. More tests would be good.
 * Checkstyle now says BDS is too big.


was (Author: psteitz):
PR is [here|https://github.com/apache/commons-dbcp/pull/50].
 * One thing missing in the list above, but made clear in javadoc is that 
connections checked out when restart is invoked don't count in the "new" pool's 
metrics. So for example if there are 3 out when restart or close - start is 
called, they may be as many as maxTotal + 3 out until the old ones get 
returned. It would be a little complicated to try to keep those connections in 
the post-restart counts.
 * I included no-op defaults for start (called "open" above) and restart in the 
interface spec to preserve backward compatibility. Any better ideas on how to 
handle that welcome.
 * I did not include eviction timer leak tests or much else to verify no side 
effects. More tests would be good.
 * Checkstyle now says BDS is too big.

> 数据库连接可以通过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
>  Time Spent: 10m
>  Remaining Estimate: 50m
>
> 当前该开源软件具备的功能:若数据库连接被关闭(即closed置为true),则必须重启服务,才能使新的数据库连接生效(closed置为false)。
> 针对容灾场景,若数据库连接串发生变化,为了使新的数据库连接动态生效(热生效),不需要手工重启服务,建议该开源软件BasicDataSource类提供一个open()方法用于置closed
>  = false;以使建立的数据库连接生效。
> 变更的代码见附件。
> 注:附件是基于2.7.0版本代码进行优化的。



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


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

2020-08-08 Thread Phil Steitz (Jira)


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

Phil Steitz edited comment on DBCP-559 at 8/8/20, 5:20 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://s.apache.org/gb0lk] 
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)


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

2020-08-08 Thread Phil Steitz (Jira)


[ 
https://issues.apache.org/jira/browse/DBCP-559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)