gpt4 book ai didi

java - 使用 BasicDataSource 关闭非 Activity session

转载 作者:行者123 更新时间:2023-12-02 11:18:08 24 4
gpt4 key购买 nike

在我们的开发数据库 Oracle 11g R2 中,我们注意到通过 Java 应用程序使用 BasicDataSource 打开的连接无限期地保持打开状态。理想情况下,我们希望每个应用程序实例最多有 5 个并发数据库 session ,但是,如果 session 不活动的时间超过 60 秒,则应关闭 session 以减少对数据库的内存影响。

使用以下代码来设置我们的 BasicDataSource,我可以观察到我们保持在 5 个数据库 session 上限之下,但我们似乎从未清除不活动的 session :

BasicDataSource ds = new BasicDataSource();
ds.setUrl(getUrlAsString());
ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
ds.setUsername(getClientOracleUserAsString());
ds.setPassword(getClientOraclePasswordAsString());
ds.setMinIdle(0);
ds.setMaxIdle(5);
ds.setMinEvictableIdleTimeMillis(60000);

最佳答案

尝试设置以下内容:

//Sets the number of connections tested during the eviction process*
numTestsPerEvictionRun=5

//Sets whether idle object evictor will validate connections*
setTestWhileIdle=true

//Sets the validation query to run to validate a connection*
setValidationQuery=SELECT 1

也可能是您没有在应用程序层正确关闭连接。

关于java - 使用 BasicDataSource 关闭非 Activity session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6267262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com