You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Rahul Kumar <ra...@TechMahindra.com> on 2011/02/23 15:13:14 UTC
Tomcat Connection Pool
Hi,
Can anyone help me regarding issue with connection pool for Tomcat?
Tomcat version: 6.0
OS: Linux
Database: Oracle 10g
.
Problem Statement:
When server is idle for long period of time thread hangs for waiting the DBMS to return with response.
I have tried all the possible combination configuration for connection pool but could succeed in removing that problem.
Connection pool Configuration:
maxActive="8"
maxIdle="8"
maxWait="30000"
minIdle="1"
initialSize="1"
validationQuery="select * from dual"
testOnBorrow="true"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="1800000"
minEvictableIdleTimeMillis="1800000"
numTestsPerEvictionRun="3"
username="PESALES"
password="XXXXX"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@10.156.33.42:1521:ORADEV2"/>
Excerpt of thread Dump:
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at oracle.net.ns.Packet.receive(Unknown Source)
at oracle.net.ns.DataPacket.receive(Unknown Source)
at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1104)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1075)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:480)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:801)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:841)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1134)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1274)
- locked <0x00002aab9a2b0ae8> (a oracle.jdbc.driver.T4CStatement)
- locked <0x00002aab9ba7d688> (a oracle.jdbc.driver.T4CConnection)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:332)
at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.validateObject(PoolableConnectionFactory.java:312)
at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:855)
- locked <0x00002aab9ba7d498> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool)
at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:558)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:350)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:262)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:102)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
============================================================================================================================Disclaimer: This message and the information contained herein is proprietary and confidential and subject to the Tech Mahindra policy statement, you may review the policy at <a href="http://www.techmahindra.com/Disclaimer.html">http://www.techmahindra.com/Disclaimer.html</a> externally and <a href="http://tim.techmahindra.com/Disclaimer.html">http://tim.techmahindra.com/Disclaimer.html</a> internally within Tech Mahindra.============================================================================================================================
Re: [OT] Tomcat Connection Pool
Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Rahul,
(Marking off-topic as this a JDBC driver/database issue unrelated to
Tomcat).
On 2/23/2011 9:13 AM, Rahul Kumar wrote:
> Tomcat version: 6.0
Not that it matters, but what version of 6.0? There are 32 or so of them.
> Problem Statement:
>
> When server is idle for long period of time thread hangs for waiting
> the DBMS to return with response.
How long is "long"?
> I have tried all the possible combination configuration for
> connection pool but could succeed in removing that problem.
Specifically, what have you tried? What were the results?
> validationQuery="select * from dual"
Might I suggest not using SELECT *, even if it's from DUAL? What does
that even return? A single row with a single field whose value is '*'?
> testOnBorrow="true"
> testWhileIdle="true"
If you have testWhileIdle=true, server idleness shouldn't affect the
JDBC connections: they are periodically "pinged".
> timeBetweenEvictionRunsMillis="1800000"
> minEvictableIdleTimeMillis="1800000"
30 minutes. What is the idle-connection-timeout on any firewall hardware
of software you might have sitting between your app server and your db?
- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAk1lK2sACgkQ9CaO5/Lv0PDaWQCfa+sXQDyMGRrritbkD1mz3u7j
f48AoLXiu98CEn5Yle1sSdbqoB6otqn1
=lJOm
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org