数据源不定时间段后连接中断(解决方法:连接关闭后设置自启动,重新自动连接。问题描述如下 ):
数据源原配置文件如下:(备注:划红线的2行出现冲突)
修改后的数据源配置如下:(解决不定时间数据库连接中断问题)(备注:
校验代码的(部分)作用:当数据库连接断开后,重新自动连接。 )
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
//<validate-on-match>false</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>200000</background-validation-millis>
<use-fast-fail>false</use-fast-fail>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
</validation>
(补充知识)工程中wildfly服务器配置文件的配置
双物理机数据源(配置代码):
<connection-url>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.100.24.30)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.100.24.31)(PORT=1521))(LOAD_BALANCE=yes)(FAILOVER=on))(CONNECT_DATA=(SERVICE_NAME=orcl )))</connection-url>
工程中wildfly服务器配置文件的配置
一个物理机数据源(配置代码):
<
connection-url
>
jdbc:oracle:thin:@192.168.2.231:1521:orcl
</
connection-url
>
(
备注: 部署工程时数据库部署在多个物理机上防止一个数据库物理机挂了影响工程,当数据库部署在多个物理机上时,可以创建一个虚拟机数据库用于关联多个
物理机数据库,从而在服务器的数据源连接配置文件中只需要一个ip连接即可)
整个数据源配置代码如下(双物理机配置
):
<datasources>
<datasource jta="true" jndi-name="java:jboss/datasources/OracleDS_UAM" pool-name="OracleDS_UAM" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.100.24.30)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.100.24.31)(PORT=1521))(LOAD_BALANCE=yes)(FAILOVER=on))(CONNECT_DATA=(SERVICE_NAME=orcl )))</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver>oracle</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>sdsy</user-name>
<password>sdsy1qaz@WSX.</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
<background-validation>true</background-validation>
<background-validation-millis>200000</background-validation-millis>
<use-fast-fail>false</use-fast-fail>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
</validation>
</datasource>
<drivers>
<driver name="oracle" module="com.oracle">
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>