jboss7 datasource 当数据库重启自动重新获取连接
2015-12-30 09:24
405 查看
[html] view
plaincopy
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">背景:</span>
jboss7 datasource,
oracle
最近客户现场的测试环境连的数据库极不稳定,经常会出现需要重新启动数据库的情况, 但是一旦重启数据库 则会出现 提示
执行sql错误,原因就是datasource 没有获取新的连接!
那么解决办法就是怎样让jboss每次提供连接的时候都给我们可用的最新的连接!
原配置如下:
[html] view
plaincopy
<subsystem xmlns="urn:jboss:domain:datasources:1.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jndi-name="java:/comp/env/siniteksirm" pool-name="siniteksirm" enabled="true" use-java-context="true">
<connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>
<driver>oracle</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
</pool>
<security>
<user-name>broker</user-name>
<password>broker</password>
</security>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="oracle" module="com.oracle.jdbc">
<xa-datasource-class>oracle.jdbc.xa.OracleXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
datasource中添加 validation
[html] view
plaincopy
<validation>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
</validation>
最终配置如下 :
[html] view
plaincopy
<subsystem xmlns="urn:jboss:domain:datasources:1.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jndi-name="java:/comp/env/siniteksirm" pool-name="siniteksirm" enabled="true" use-java-context="true">
<connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>
<driver>oracle</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
</pool>
<security>
<user-name>broker</user-name>
<password>broker</password>
</security>
<validation>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
</validation>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="oracle" module="com.oracle.jdbc">
<xa-datasource-class>oracle.jdbc.xa.OracleXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</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
plaincopy
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">背景:</span>
jboss7 datasource,
oracle
最近客户现场的测试环境连的数据库极不稳定,经常会出现需要重新启动数据库的情况, 但是一旦重启数据库 则会出现 提示
执行sql错误,原因就是datasource 没有获取新的连接!
那么解决办法就是怎样让jboss每次提供连接的时候都给我们可用的最新的连接!
原配置如下:
[html] view
plaincopy
<subsystem xmlns="urn:jboss:domain:datasources:1.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jndi-name="java:/comp/env/siniteksirm" pool-name="siniteksirm" enabled="true" use-java-context="true">
<connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>
<driver>oracle</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
</pool>
<security>
<user-name>broker</user-name>
<password>broker</password>
</security>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="oracle" module="com.oracle.jdbc">
<xa-datasource-class>oracle.jdbc.xa.OracleXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
datasource中添加 validation
[html] view
plaincopy
<validation>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
</validation>
最终配置如下 :
[html] view
plaincopy
<subsystem xmlns="urn:jboss:domain:datasources:1.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jndi-name="java:/comp/env/siniteksirm" pool-name="siniteksirm" enabled="true" use-java-context="true">
<connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>
<driver>oracle</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
</pool>
<security>
<user-name>broker</user-name>
<password>broker</password>
</security>
<validation>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
</validation>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="oracle" module="com.oracle.jdbc">
<xa-datasource-class>oracle.jdbc.xa.OracleXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</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
相关文章推荐
- oracle分页
- 给查询出的SQL记录添加序号列
- 判断数据库是否是数字 isnumeric
- ubuntu15.04中安装mysql和mysql-workbench
- hibernate sql查询转换成VO返回list
- 数据库基本操作
- sql嵌套批量更新
- Xtrabackup快速搭建MySQL主从复制
- 常见SQL语句语法错误解决
- 数据库学习2
- Oracle报错:ORA-00845: MEMORY_TARGET not supported on this system
- Spark修炼之道(高级篇)——Spark源码阅读:第十三节 Spark SQL之SQLContext(一)
- 在VS的EF中连接MySQL
- T-SQL update 表中一列为不重复的5位随机数
- T-SQL生成X个不重复的Y位长度的随机数
- SQLServer如何快速生成100万条不重复的随机8位数字
- 数据库操作的异常Cannot perform this operation because the connection pool has been close
- MongoDB学习笔记六:进阶指南
- Mongodb 笔记02 创建、更新和删除文档
- MongoDB学习笔记五:聚合