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