gpt4 book ai didi

java - JBoss 在连接超时时重新连接

转载 作者:行者123 更新时间:2023-11-29 07:46:10 25 4
gpt4 key购买 nike

我想在连接中断时重新连接。
我遇到的问题,我在这里解释 https://stackoverflow.com/questions/25504566/jta-transaction-in-other-thread-rolling-back
我还没有弄清楚为什么会发生这种情况,但我现在已经让死锁不可能发生了,所以我会等一个星期看看它是否已修复。

但我认为我的设置应该在连接失败时重新连接。但是相反,JTA 问题终止了我的连接,并且它不会恢复。大概因为它是 CMT,只有一个连接,它通过 @PersistenceContext 传递,所以相同的 EntityManager 用于所有内容,因此要重新连接,它必须从 EntityManagerFactory 获取一个新的 EntityManager,但它不知道该怎么做。我不知道 JBoss 和 JPA 的内部结构。

这是我的设置:

<datasources>
<datasource jndi-name="java:/DS" pool-name="DS" enabled="true" use-java-context="true">
<connection-url>jdbc:sqlserver://srv.local:1433;databaseName=AS_DEV</connection-url>
<driver>sqlserver2008</driver>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>

<prefill>false</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>user</user-name>
<password>12345</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"/>
</validation>
</datasource>
<drivers>
<driver name="sqlserver2008" module="com.microsoft">
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
</driver>
</drivers>
</datasources>

我还能做什么,以确保在失败时恢复连接?

最佳答案

通过 background-validation-millis 使用后台验证。请根据您的要求设置后台验证。

<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker" />
<background-validation>true</background-validation>
<validate-on-match>false</validate-on-match>
<background-validation-millis>60000</background-validation-millis>
</validation>

<background-validation>true</background-validation>当此项设置为“真”时,将匹配时验证设置为“假”。使用 <background-validation-millis>调整验证运行的频率。 <background-validation-millis> 的默认值参数为 0 毫秒。这也意味着后台验证被禁用。此值不应与您的 <idle-timeout-minutes> 相同值(value)。

• 请注意,对同一池同时使用匹配验证和后台验证是无效的。选择一个。

关于java - JBoss 在连接超时时重新连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25549894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com