java - 池大小的理想背景验证毫秒值约为 50

标签 java oracle11g datasource jndi jboss5.x

我们的应用程序使用 jboss 企业应用服务器 5.x
我们还使用 jboss 数据源 *-ds.xml有一个连接池。
下面是数据源xml文件

<datasources>
        <local-tx-datasource>
                <jndi-name>myappDS</jndi-name>
                <connection-url>jdbc:oracle:thin:@ip:1521:sid</connection-url>
                <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
                <user-name>usr</user-name>
                <password>pass</password>
                <min-pool-size>5</min-pool-size>
                <max-pool-size>50</max-pool-size>
                <blocking-timeout-millis>5000</blocking-timeout-millis>
                <idle-timeout-minutes>15</idle-timeout-minutes>
                <autoReconnect>true</autoReconnect>
                <failOverReadOnly>false</failOverReadOnly>
                <maxReconnects>50</maxReconnects>
                <initialTimeout>15</initialTimeout> 
                <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
                <background-validation-millis>150000</background-validation-millis>
                <validate-on-match>false</validate-on-match>
                <!--
                        corresponding type-mapping in the standardjbosscmp-jdbc.xml
                        (optional)
                -->
                <metadata>
                        <type-mapping>Oracle11g</type-mapping>
                </metadata>
        </local-tx-datasource>
</datasources>

现在,如您所见,我们正在使用查询来使用后台连接验证。
我的理解是jboss将尝试对池中当前的每个连接执行验证查询以验证连接。

1.我的理解正确吗?
2. 如果是,那么理想的应该是什么 <background-validation-millis>值假设我的最大池大小为 50 并且数据库将仅在周末重新启动。我们引入此验证是因为每当数据库重新启动时,我们都必须重新启动 Jboss 服务器,否则它无法自动连接到数据库。

如果问题不清楚,请告诉我。
提前致谢。

最佳答案

当用户从池中 checkout 连接时,配置设置 check-valid-connection-sql 指定的 sql 将在连接返回给用户之前运行。 background-validation-millis 子句确保验证在单独的线程中运行并指定检查的时间间隔。

关于java - 池大小的理想背景验证毫秒值约为 50,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19853064/

相关文章:

oracle - 复选框值在 Oracle Forms 中不起作用

sql - ORACLE SQL 中的 MAX()

c# - 从sql数据源获取数据到asp.net控件

java - 在 Spring 4 中扫描@Configuration bean

java - Java EE 中的用户管理安全性

java - 分配的元空间大于 MaxMetaspaceSize

sql - 哪种方式适合检查表是否存在

java - 是否可以将事件从线程发送到 Activity ?

java - 解决bean三个数据源的循环

java - 使用 org.jboss.dmr.ModelNode 更改数据源属性