为什么从JBoss7.1.0EAP到Oracle11g生成了100个幽灵Oracle会话

我们最近将JBoss版本中的spring-mvc应用程序从4升级到JBoss7.1.0.EAP。 Java6到Java8以及hibernate5.1,以及从SunOS到RedHat Linux7.1的基础架构。 Oracle11g数据库没有升级。我们已经使用standalone.xml从JBoss进行连接池。应用程序中没有代码更改,只需抬起和移动即可。 在生产中,我们注意到创建了100个不活动的Oracle会话,并且很少有会话长时间运行以锁定和阻塞重要表,从而使应用程序变慢。 我们已经在JBoss中使用了ojdbc14.jar。

是否有任何补救措施或方法来弄清楚为什么会发生这种情况以及如何解决此问题。

Standalone.xml中的代码

 <datasource jta="true" jndi-name="xxxxxxxxx" pool-name="xxxxxxxxx" enabled="true" use-ccm="false">
                    <connection-url>jdbc:Oracle:thin:xxxxxxxxxxx</connection-url>
                    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
                    <driver>oracle</driver>
                    <pool>
                        <min-pool-size>0</min-pool-size>
                        <max-pool-size>500</max-pool-size>
                    </pool>
                    <security>
                           <user-name>xxxxxxx</user-name>
                           <password>xxxxxxxx</password>
                    </security>
                    <validation>
                      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
                      <background-validation>true</background-validation>
                      <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
                      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
                    </validation>
                 </datasource>
plxlzzplxl 回答:为什么从JBoss7.1.0EAP到Oracle11g生成了100个幽灵Oracle会话

要为连接配置空闲超时,您可以添加元素:

<idle-timeout-minutes>15</idle-timeout-minutes>

Afaik在最新的JBoss版本中将默认值从15min更改为30min。

您还可以考虑将oracle驱动程序更新为最新版本(例如ojdbc7.jar)。参见此处https://www.oracle.com/database/technologies/jdbc-drivers-12c-downloads.html

本文链接:https://www.f2er.com/3101410.html

大家都在问