jboss7 datasource 当数据库重启自动重新获取连接

来源:互联网 发布:天天pk10计划软件 编辑:程序博客网 时间:2024/05/01 15:33
[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">背景:</span>  

jboss7 datasource,

oracle 


最近客户现场的测试环境连的数据库极不稳定,经常会出现需要重新启动数据库的情况, 但是一旦重启数据库 则会出现 提示 

执行sql错误,原因就是datasource 没有获取新的连接!

那么解决办法就是怎样让jboss每次提供连接的时候都给我们可用的最新的连接! 


原配置如下:

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <subsystem xmlns="urn:jboss:domain:datasources:1.0">  
  2.             <datasources>  
  3.                 <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">  
  4.                     <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>  
  5.                     <driver>h2</driver>  
  6.                     <security>  
  7.                         <user-name>sa</user-name>  
  8.                         <password>sa</password>  
  9.                     </security>  
  10.                 </datasource>  
  11.                 <datasource jndi-name="java:/comp/env/siniteksirm" pool-name="siniteksirm" enabled="true" use-java-context="true">  
  12.                     <connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>  
  13.                     <driver>oracle</driver>  
  14.                     <pool>  
  15.                         <min-pool-size>10</min-pool-size>  
  16.                         <max-pool-size>100</max-pool-size>  
  17.                     </pool>  
  18.                     <security>  
  19.                         <user-name>broker</user-name>  
  20.                         <password>broker</password>  
  21.                     </security>  
  22.                 </datasource>  
  23.                 <drivers>  
  24.                     <driver name="h2" module="com.h2database.h2">  
  25.                         <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>  
  26.                     </driver>  
  27.                     <driver name="oracle" module="com.oracle.jdbc">  
  28.                         <xa-datasource-class>oracle.jdbc.xa.OracleXADataSource</xa-datasource-class>  
  29.                     </driver>  
  30.                 </drivers>  
  31.             </datasources>  
  32.         </subsystem>  

datasource中添加  validation


[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <validation>  
  2.                         <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>  
  3.                     </validation>  

最终配置如下 :

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <subsystem xmlns="urn:jboss:domain:datasources:1.0">  
  2.             <datasources>  
  3.                 <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">  
  4.                     <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>  
  5.                     <driver>h2</driver>  
  6.                     <security>  
  7.                         <user-name>sa</user-name>  
  8.                         <password>sa</password>  
  9.                     </security>  
  10.                 </datasource>  
  11.                 <datasource jndi-name="java:/comp/env/siniteksirm" pool-name="siniteksirm" enabled="true" use-java-context="true">  
  12.                     <connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>  
  13.                     <driver>oracle</driver>  
  14.                     <pool>  
  15.                         <min-pool-size>10</min-pool-size>  
  16.                         <max-pool-size>100</max-pool-size>  
  17.                     </pool>  
  18.                     <security>  
  19.                         <user-name>broker</user-name>  
  20.                         <password>broker</password>  
  21.                     </security>  
  22.                     <validation>  
  23.                         <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>  
  24.                     </validation>  
  25.                 </datasource>  
  26.                 <drivers>  
  27.                     <driver name="h2" module="com.h2database.h2">  
  28.                         <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>  
  29.                     </driver>  
  30.                     <driver name="oracle" module="com.oracle.jdbc">  
  31.                         <xa-datasource-class>oracle.jdbc.xa.OracleXADataSource</xa-datasource-class>  
  32.                     </driver>  
  33.                 </drivers>  
  34.             </datasources>  
  35.         </subsystem>  

经测试问题解决了!


参考文档:

http://stackoverflow.com/questions/128527/is-there-any-way-to-have-the-jboss-connection-pool-reconnect-to-oracle-when-conn

https://developer.jboss.org/wiki/ConfigDataSources


0 0
原创粉丝点击