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

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">背景:</span>

jboss7 datasource,

oracle 


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

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

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


原配置如下:

<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


<validation>
                        <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
                    </validation>

最终配置如下 :

<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





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值