Java 为什么从JBoss7.1.0EAP到Oracle11g会生成100个ghost 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中的代码Java 为什么从JBoss7.1.0EAP到Oracle11g会生成100个ghost Oracle会话,java,hibernate,java-8,oracle11g,jboss,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会话,很少有会话运行长时间锁定和阻塞重要表,这使得应用程序运行缓慢。 我们在JBoss中使用
<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>
jdbc:Oracle:thin:xxxxxxxxxx
oracle.jdbc.driver.OracleDriver
神谕
0
500
xxxxxxx
xxxxxxxx
真的
要为连接配置空闲超时,可以添加元素:
<idle-timeout-minutes>15</idle-timeout-minutes>
15
在最近的JBoss版本中,默认值从15分钟更改为30分钟
您还可以考虑将Oracle驱动程序更新到一个更新近的版本(例如OjdBC7.jar)。请看这里。
您允许JBoss创建多达500个连接-我没有看到任何与您的问题无关的关闭空闲连接的配置:ojdbc14.jar
用于Java1.4,如果您在Oracle11is中使用Java8,您应该至少使用ojdbc6.jar
或者更好的ojdbc7.jar
standalone.xml中没有任何关闭非活动会话的设置。在代码库中,每当我们打开连接时,我们都会关闭它。在这次迁移过程中,代码没有变化。是的。将在服务器中将其更改为ojdbc7.jar。是的。将这样做,并让您知道。Thnx