>> I am using Tomcat 7.0.42 and Tomcat jdbc pool.
>Just to be perfectly clear, how are you using this? With a <Resource/>
tag in your Tomcat >configuration or are you creating the pool in your
code? Either way, include the necessary >config or code which shows how
you've defined the pool.
The pool configuration is in context.xml. A sample of the config looks like
this:
<Resource name="jdbc/name"
auth="Container"
type="javax.sql.DataSource"
fairQueue="true"
factory="<customized-factory>"
username="<username>"
password="<password>"
driverClassName="oracle.jdbc.OracleDriver"
url="<url>"
timeBetweenEvictionRunsMillis="1800000"
validationQuery="SELECT 1 from dual"
validationInterval="30000"
maxActive="50"
minIdle="4"
maxIdle="4"
maxWait="10000"
initialSize="4"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="false"
minEvictableIdleTimeMillis="600000"
initSQL="<initSQL>"
testOnBorrow="false"
testOnReturn="false"
testWhileIdle="true"
/>
>> Once the pool is created
>> with the default configuration, I obtained few connections from this
pool.
>Again, how are you obtaining connections? Is this through JNDI or through
direct access by >code in your application? An example would be helpful.
The connections are being obtained by the code through JNDI lookup. Here's
the code sample:
Context ctx = (Context)new InitialContext().lookup("java:comp/env/");
DataSource ds = (DataSource)ctx.lookup("jdbc/name");
ds.getConnection();
>> But after certain amount of time, dataSource.getSize() shows the size as
0!
>How are you determining this? Are you looking at it in a debugger? Do
you have a direct >reference to the data source in your code? If so, can
you show an example?
I am doing a lookup for the data source in the code. The lookup example is
the same as above. The only addition is after getting the data source,
dataSource.getSize() is invoked.
>As a note, when used in Tomcat (i.e. you've configured it with a
<Resource/> tag) you should >use JMX to monitor pool statistics. Of course
you can do this if you manually create the pool >(like in a public static
void main app), but you'll need to make sure JMX is correctly setup in
>your application.
>> Is this the expected behavior? Please help me understand what is
happening.
>We can certainly help you with this, but were going to need more info.
See my other >comments.
>>
>>Thanks in advance.
>>
>> -Anu
>>
>>
>> Adding to the previous information, though the minIdle is set to a value
>> greater than 0, size of the pool, number of idle connections and number
of
>> active connections, all these are displayed as 0!
>Connection counts can legitimately go to zero under certain conditions.
Are you seeing any >error or warning messages from the connection pool in
your logs?
No errors/warnings!
-Anu
>Dan