You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ji...@apache.org on 2004/05/25 14:55:00 UTC

[jira] Commented: (JAMES-294) Database Pool becomes exhausted after a short time when heavily polled

The following comment has been added to this issue:

     Author: Chris Means
    Created: Tue, 25 May 2004 5:54 AM
       Body:
Following a pointer from Noel, I updated my James.SAR with new release candidates for commons-dbcp and commons-pool available at:

http://jakarta.apache.org/commons/pool/downloads.html
http://jakarta.apache.org/commons/dbcp/downloads.html

I also punched up the polling time for my Mars monitor to every 10 seconds for both SMTP and POP3.  I left it running for over 24 hours without the exceptions reoccuring.

I've now turned off the extra polling, and am watching to see if the exceptions reoccur during a normal load, but so far, the updated jars seem to have resolved the issues.
---------------------------------------------------------------------
View this comment:
  http://issues.apache.org/jira/browse/JAMES-294?page=comments#action_35713

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/JAMES-294

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: JAMES-294
    Summary: Database Pool becomes exhausted after a short time when heavily polled
       Type: Bug

     Status: Unassigned
   Priority: Major

    Project: James
 Components: 
             UsersStore & UsersRepository
   Versions:
             2.2.0RC3
             2.2.0RC4

   Assignee: 
   Reporter: Chris Means

    Created: Tue, 25 May 2004 5:50 AM
    Updated: Tue, 25 May 2004 5:54 AM
Environment: Windows NT v4.0, Java 1.4.2

Description:
I've had RC3 running for the past week.

Other than an issue I ran into with the config.xml when translating changes from my 0a4 configuration, RC3 has been running quite well except for a new problem that appears to have surfaced.

This issue may relate to the fact that I've also been evaluating Mars
(http://leapfrog-mars.sourceforge.net/) for monitoring services.

Here's the exception that's occurring in the pop3server log:

23/05/04 11:01:58 ERROR pop3server: Exception during connection from intfar.com (66.92.129.218) : An exception occurred getting a database connection.
org.apache.avalon.framework.CascadingRuntimeException: An exception occurred getting a database connection.
	at
org.apache.james.userrepository.AbstractJdbcUsersRepository.openConnection(A
bstractJdbcUsersRepository.java:601)
	at
org.apache.james.userrepository.AbstractJdbcUsersRepository.getUserByName(Ab
stractJdbcUsersRepository.java:506)
	at
org.apache.james.userrepository.AbstractUsersRepository.test(AbstractUsersRe
pository.java:284)
	at
org.apache.james.pop3server.POP3Handler.doPASS(POP3Handler.java:528)
	at
org.apache.james.pop3server.POP3Handler.parseCommand(POP3Handler.java:470)
	at
org.apache.james.pop3server.POP3Handler.handleConnection(POP3Handler.java:26
6)
	at
org.apache.james.util.connection.ServerConnection$ClientConnectionRunner.run
(ServerConnection.java:417)
	at
org.apache.james.util.thread.ExecutableRunnable.execute(ExecutableRunnable.j
ava:55)
	at
org.apache.james.util.thread.WorkerThread.run(WorkerThread.java:90)
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted, cause: Timeout waiting for idle object
	at
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.ja
va:148)
	at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:5
18)
	at
org.apache.james.util.dbcp.JdbcDataSource.getConnection(JdbcDataSource.java:
218)
	at
org.apache.james.userrepository.AbstractJdbcUsersRepository.openConnection(A
bstractJdbcUsersRepository.java:598)
	... 8 more
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
	at
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPoo
l.java:801)
	at
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.ja
va:140)
	... 11 more

This an exception from mailstore log:

23/05/04 10:31:09 ERROR mailstore: Error retrieving messageCannot get a connection, pool exhausted0nullnull
23/05/04 10:31:09 ERROR mailstore: Exception during retrieve -- skipping item Mail1085326264738-657
javax.mail.MessagingException: Exception while retrieving mail: Cannot get a connection, pool exhausted
	at
org.apache.james.mailrepository.JDBCMailRepository.retrieve(JDBCMailReposito
ry.java:905)
	at
org.apache.james.mailrepository.JDBCSpoolRepository.accept(JDBCSpoolReposito
ry.java:199)
	at
org.apache.james.mailrepository.JDBCSpoolRepository.accept(JDBCSpoolReposito
ry.java:124)
	at
org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:350)
	at java.lang.Thread.run(Thread.java:536)

Some background:

I am the primary user of this mail server.  My M$ Outlook checks 5 different accounts every 5 minutes.

Since I've been evaluating Mars, I've had it monitoring access for POP3 and SMTP every minute, with a 5 second timeout.

I think it's this last point that's likely causing the problem.  Am I expecting too much from James?  My monitoring too aggressive?

As this seems to be a new issue, I didn't think RC4 was likely to solve it.



---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org