我们的应用程序使用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,而db只会在周末重新启动。我们引入了此验证,因为每当DB重新启动时,就必须重新启动Jboss服务器,否则它无法自动连接到数据库。
如果问题不清楚,请告诉我。
提前谢谢。
发布于 2013-11-09 02:36:26
当用户从池签出连接时,由配置设置指定的sql将在连接返回给用户之前运行。后台验证-millis子句确保验证在单独的线程中运行,并指定检查的间隔。
https://stackoverflow.com/questions/19853064
复制相似问题