当前位置: 首页 > 知识库问答 >
问题:

在Wildfly 8.2 for Oracle中自动恢复连接,而不使用validate-on-match

宣弘新
2023-03-14

我正在使用WildFly8.2和Oracle11g,我让我的连接池刷新一个无效的连接,并在可能的情况下创建一个新的连接。我也在后端使用Spring和Hibernate(我们通过JNDI查找连接)

<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>

如果可以避免的话,我不想使用“旧的行为”。有没有人用Oracle11g WildFly8.2自动恢复连接池的例子。并使用ojdbc6驱动程序。

谢谢

顺便说一句,我当前对池的设置如下所示(注意,我知道我已经将池大小设置为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>

为任何能帮上忙的人欢呼

共有1个答案

王昊
2023-03-14

请尝试此验证节点:

<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的值。

 类似资料:
  • 我目前正在着手一个将spring数据与JPA/Hibernate结合使用的项目。现在,我正在使用@Autowired注释在相关属性上注入JpaRepositories,例如: ...在这里,我员工道是一个扩展JpaRepository的接口,注释为@Repository: 使用这种方法一切都很好——然而,我相当习惯于用XML完成我的大部分Spring配置工作,因为我个人喜欢所有相关配置都在同一个地

  • 我想使用Jetty构建一个嵌入式Java WebSocket服务器。我正在使用Jetty 9.2.6。我的客户端是一个HTML javascript客户端。 使用Google Chrome(39,WebSocket13版),我可以建立连接并双向发送数据。当我使用Firefox(34,WebSocket版本13)时,连接建立后直接关闭。在我的SocketListenerClass中,调用onWebS

  • 尝试使用Docker容器将Kibana连接到ES时出错: kibana-product-624|{"type":"log","@time戳":"2018-05-25T14:56:36Z","tags":["警告","elasticsearch","admin"],"pid": 1,"消息":"无法恢复连接:超文本传输协议://elasticsearch: 9200/"}kibana-product

  • 希望有人能帮我找出,如果不是一个解决方案,至少是一个行为的解释。 问题: 在一些设备上,按下启动器图标会导致当前任务恢复,在其他设备上,会导致初始启动意图被激发(有效地重新启动应用程序)。为什么会这样? 细节: 当您按下“启动程序图标”时,应用程序会正常启动-也就是说,我假设,使用您的第一个和操作和类别。然而,情况并非总是如此: 在大多数设备上,如果您在应用程序已经运行后按下启动器图标,则会恢复该

  • 我有一个包含3个活动的应用程序。 我有主要活动。这将调用第二个活动,然后调用第三个活动。我想在不进入 onCreate 的情况下返回到主要活动。 这是第三个活动的代码:

  • 我是Spring的新手。我正面临Spring-Boot的问题。我正在尝试将外部配置文件中的字段自动装配到自动装配的bean中。我有以下类 应用程序。Java语言 AppConfig。Java语言 服务接口 服务1 我无法在App类的postconstruct方法中显示服务名称变量。我这样做对吗?