0
我想弄清楚我的数据源定义是否是我们遇到问题的根本原因。我们在AWS的应用程序堆栈中有几台TomEE机器和ELB。随机保留与数据库的空闲连接并不终止。JVM数据源调整tomEE连接池中的空闲数据库连接
我想知道我们可以做些什么来更好地建立我们的连接和收获连接。我们的应用程序确实有中等数量的请求/秒。
这是我们的Tomee.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<tomee>
<!-- see http://tomee.apache.org/containers-and-resources.html -->
<!-- Datasources for Prod -->
<Resource id="DBWPC" type="javax.sql.DataSource">
DataSourceCreator tomcat
JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@x.x.com:1521:service
UserName xxxxx
Password xxxx
jmxEnabled true
InitialSize 5
MaxActive 20
MaxIdle 20
MinIdle 0
MaxWait -1
ValidationQuery SELECT 1 FROM DUAL
PoolPreparedStatements true
MaxOpenPreparedStatements 0
TestWhileIdle true
timeBetweenEvictionRunsMillis 180000
JtaManaged true
</Resource>
<!-- Standard JMS Setup for NON-SERVER **** START **** -->
<Resource id="PrimaryJMSRA" type="ActiveMQResourceAdapter">
BrokerXmlConfig=
ServerUrl = tcp://x.x.com:61616
</Resource>
<Resource id="JmsConnectionFactory" type="javax.jms.ConnectionFactory">
ResourceAdapter = PrimaryJMSRA
</Resource>
<Container id="JmsMdbContainer" ctype="MESSAGE">
ResourceAdapter = PrimaryJMSRA
</Container>
<Container id="wpcStatelessContainer" type="STATELESS">
accessTimeout = 30 seconds
callbackThreads = 5
closeTimeout = 5 minutes
garbageCollection = false
idleTimeout = 0 minutes
maxAge = 0 hours
maxAgeOffset = -1
maxSize = 5000
minSize = 20
replaceAged = true
replaceFlushed = false
strictPooling = false
sweepInterval = 5 minutes
</Container>
<Container id="wpcSingletonContainer" type="SINGLETON">
accessTimeout = 30 seconds
</Container>
我应该补充说,它在数据库中造成的问题是阻塞其他SID的会话。我们有实例,我们有超过200个会话被空闲SID阻止,导致我们的应用程序停止响应。就像JVM不会为另一个请求服务,因为我无限期地等待下去。 – user3137487