java - 为什么从 JBoss 7.1.0EAP 到 Oracle 11g 会生成 100 个幽灵 Oracle session

标签 java hibernate java-8 oracle11g jboss

我们最近将 JBoss 版本中的 spring-mvc 应用程序从 4 升级到 JBoss7.1.0.EAP。还有 Java6 到 Java8 以及 hibernate5.1 以及从 SunOS 到 RedHat Linux7.1 的基础设施。 Oracle11g数据库没有升级。我们使用standalone.xml 来实现JBoss 的连接池。应用程序中没有任何代码更改,只需直接移位即可。 在生产中,我们注意到创建了 100 个不活动的 Oracle session ,并且很少有 session 长时间运行锁定和阻塞重要表,从而导致应用程序变慢。 我们在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>

最佳答案

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

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

据我所知,在最新的 JBoss 版本中,默认值已从 15 分钟更改为 30 分钟。

您还可以考虑将 oracle 驱动程序更新到更新版本(例如 ojdbc7.jar)。看到这里https://www.oracle.com/database/technologies/jdbc-drivers-12c-downloads.html .

关于java - 为什么从 JBoss 7.1.0EAP 到 Oracle 11g 会生成 100 个幽灵 Oracle session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58860104/

相关文章:

java - Java中的视频-声音-传感器捕获

java - 在 Java 中读取 OCSP 签名证书时出现异常

java.lang.NoSuchMethodException : Unknown property 'language' on class 'class java.lang.Class'

java - IntStream 来自 Random 和 Random 并发

Java 8 Collections.sort(有时)不对 JPA 返回列表进行排序

java - tools.jar 丢失 - 但仅在第一次调用时(Tomcat 8/Java 8/Axis)

java - 已解决 : AEADBadTagException. 我尝试了多种方法,现在将盐和初始化 vector 存储在加密文件中

java - 访问限制 : The constructor Provider() is not accessible due to restriction on required library jdk1. 6.0\jre\lib\jsse.jar?

java - JPA/hibernate 性能

java - org.postgresql.util.PSQLException : ERROR: column user0_. id 不存在 - hibernate