ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

java – 在不使用validate-on-match的情况下自动恢复Wildfly 8.2 for Oracle中的连接

2019-07-11 17:03:01  阅读:256  来源: 互联网

标签:java oracle jboss connection-pooling oracle11g


我正在使用wildfly 8.2和oracle 11g,我的连接池刷新了无效的连接,并在可能的情况下创建一个新连接.我也在后端使用Spring和Hibernate(我们通过JNDI查找连接)

我无法在网上找到oracle池配置的简明示例,我可以开始工作,所以我从各种来源中抄袭了一些东西,并设法让它运行起来.

我的问题是这个.我设置“匹配时验证”等于true,但Jboss文档(https://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/beta500/html/ch13s13.html)说明了这一点

<validate-on-match> - Prior to JBoss 4.0.5, connection validation occurred when the JCA layer attempted to match a managed connection. With the addition of <background-validation> this is no longer required. Specifying <validate-on-match> forces the old behavior. NOTE: this is typically NOT used in conjunction with <background-validation>

如果我可以避免它,我不想使用“旧行为”.有没有人有一个使用Oracle 11g Wildfly 8.2自动恢复连接池的示例.并使用ojdbc6驱动程序.

谢谢

顺便说一句,我目前为游泳池设置的设置如下(nb我知道我将池大小设置为1,因此我可以轻松杀死会话并知道游泳池恢复).

 <datasource jta="true" jndi-name="java:/jboss/datasources/mydatabase" pool-name="mydatabase" enabled="true" use-ccm="true">
                    <connection-url>jdbc:oracle:thin:@localhost:1521:mydatabase</connection-url>
                    <driver-class>oracle.jdbc.OracleDriver</driver-class>
                    <driver>ojdbc6-11.1.0.7.0.jar</driver>
                    <pool>
                        <min-pool-size>1</min-pool-size>
                        <max-pool-size>1</max-pool-size>
                        <flush-strategy>FailingConnectionOnly</flush-strategy>
                    </pool>
                    <security>
                        <user-name>mydatabase</user-name>
                        <password>mydatabase</password>
                    </security>
                    <validation>
                        <check-valid-connection-sql>SELECT 1 FROM DUAL</check-valid-connection-sql>
                        <validate-on-match>true</validate-on-match>
                        <background-validation>false</background-validation>
                    </validation>
                    <timeout>
                        <set-tx-query-timeout>false</set-tx-query-timeout>
                        <blocking-timeout-millis>0</blocking-timeout-millis>
                        <idle-timeout-minutes>0</idle-timeout-minutes>
                        <query-timeout>0</query-timeout>
                        <use-try-lock>0</use-try-lock>
                        <allocation-retry>0</allocation-retry>
                        <allocation-retry-wait-millis>0</allocation-retry-wait-millis>
                    </timeout>
                    <statement>
                        <share-prepared-statements>false</share-prepared-statements>
                    </statement>
                </datasource>
            </datasources>

欢呼任何可以提供帮助的人

解决方法:

试试这个验证节点:

<validation>
    <background-validation>true</background-validation>
    <background-validation-millis>200000</background-validation-millis>
    <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
</validation>

请记住调整background-validation-millis的值.

标签:java,oracle,jboss,connection-pooling,oracle11g
来源: https://codeday.me/bug/20190711/1434320.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有