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