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

JBoss在空闲30分钟后丢弃连接(带有Oracle的JBoss XA数据源)

鲁彬炳
2023-03-14

我正在使用Wildfly-8.2.0.final和oracle 12c以及OJDBC6。我已经配置了XA数据源来连接oracle数据库。一旦服务器启动并且繁忙,一切看起来都很好,但是如果应用程序服务器空闲超过30分钟,我将得到以下异常:

调试消息:

DatabaseConnectionMgr.CreateNewProperties()()失败原因代码潜台词:异常消息:java.sql.sqlexception:javax.resource.resourceException:ij000457:Unchecked throwable in managedConnectionReconnected()cl=org.jboss.jca.core.ConnectionManager.listener.txConnectionListener@401c2dca[state=destroled managed选项jndiname=java:jboss/datasources/imctxdatasource]txsync=null]异常堆栈跟踪:org.jboss.jca.adapters.jdbc.wrapperdatasource.getconnection(wrapperdatasource.java:154)com.unisys.trans.shared.util.jdbc.databaseconnectionmngr.createNewProperties(databaseconnectionmngr.java:515)

<xa-pool>
    <min-pool-size>1</min-pool-size>
    <max-pool-size>30</max-pool-size>
    <prefill>false</prefill>
    <use-strict-min>false</use-strict-min>
    <flush-strategy>FailingConnectionOnly</flush-strategy>
    <is-same-rm-override>false</is-same-rm-override>
    <no-tx-separate-pools>true</no-tx-separate-pools>
    <pad-xid>false</pad-xid>
    <wrap-xa-resource>true</wrap-xa-resource>
</xa-pool>

共有1个答案

宗政英才
2023-03-14

我知道三种机制来终止空闲连接。

1)Jboss idle-timeout-minutes。您没有设置这个值,它的默认值是15分钟。(最小概率)

2)sqlnet.ora EXPIRE_TIME中的配置sqlnet.ora expiretime

select * from dba_profiles where PROFILE = (SELECT profile FROM dba_users WHERE USERNAME =user);
 类似资料:
  • 我有一个在wildfly 8.1下运行的应用程序,应用程序中使用的数据库连接来自standalone中定义的数据源。xml文件。 问题:我不知道为什么,但池中的连接从不空闲,并且会被释放。最终,池被填满,所有活动连接和应用程序开始抛出 同时,当我查看数据库时,大多数连接显示为空闲。(配置和结果输出如下) 我已经做了一个星期了,还没能找出这个问题的根本原因。我还检查了所有创建连接的地方,并确保它们在

  • null 如果我理解正确的话,我们应该在启动时有1个空闲连接,根据负载从0到3,对吗? 正在发生的情况是:启动时1个连接,如果负载较低,最多3个空闲连接,高负载后超过3个空闲连接。然后这些连接不会立即关闭,我们不知道它们何时/是否会关闭(有时它们中的一些会关闭)。 所以问题是:这种行为正常吗? DAO子类的使用示例:

  • 拒绝/丢弃到反应堆TCPServer的传入连接的正确方法是什么? 我目前有以下资料: 它似乎起作用了,并且成功地从我的列表中的远程地址丢弃连接。但每次它都将堆栈跟踪打印到控制台,而且通常情况下看起来不太好。 拒绝与tcpserver的某些连接的正确方法是什么?

  • 问题内容: 我看到许多连接处于打开状态,并且很长一段时间(例如5分钟)保持空闲状态。 有什么解决方案可以在不重新启动mysql服务的情况下从服务器终止/关闭它? 我正在维护旧的PHP系统,无法关闭为执行查询而建立的连接。 我应该将my.cnf文件中的超时值减少为默认的8小时吗? 问题答案: 手动清理: 您可以杀死该进程ID。 但: php应用程序可能会报告错误(或网络服务器,请检查错误日志) 不要

  • 我有两个oracle DB,但我在主数据库中得到“空闲实例,如下所示。

  • 我正在使用Knex.js来处理与数据库的连接。我正在尝试防止连接池破坏空闲的连接。 我的配置是这样的 然而,我仍然不断得到 在一段时间不活动后。 据我所知,当足够的时间过去时,应该将连接从池中丢弃。因此,如果连接有一段时间没有使用(这就是我的情况),池中将没有连接,我尝试的第一次调用将失败,并出现给定错误。随后的调用顺利进行(直到新的超时) 我的问题是——如何防止这种情况? 编辑 在我的应用空闲一