activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rob Davies (JIRA)" <j...@apache.org>
Subject [jira] Created: (AMQ-1702) DefaultDatabaseLocker causes Oracle to throw an exception "maximum open cursors exceeded" under heavy load
Date Wed, 30 Apr 2008 06:44:43 GMT
DefaultDatabaseLocker causes Oracle to throw an exception "maximum open cursors exceeded" under
heavy load
----------------------------------------------------------------------------------------------------------

                 Key: AMQ-1702
                 URL: https://issues.apache.org/activemq/browse/AMQ-1702
             Project: ActiveMQ
          Issue Type: Bug
          Components: Message Store
    Affects Versions: 5.0.0
            Reporter: Rob Davies
            Assignee: Rob Davies
             Fix For: 5.1.0


The API document for the java.sql.Statement class (http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Statement.html#close())
says that statement objects are automatically closed during garbage collection, however, under
heavy load (i.e. for an application that is processing multiple messages per second) you will
quickly run out of cursors even before garbage collection gets to reclaiming prepared statements.
Also any application that deals with huge volume is going to use a connection pool that also
pools the statements, which means that the statement you created are referenced by the pool,
thus they won't be garbage collected and closed. Just like the connection.close triggers the
connection to be marked as available in the pool, statement.close will trigger the statement
to be available in the pool for whoever needs a statement for this connection.
As a result of running out of statements, DefaultDatabaseLocker causes Oracle to throw an
exception "maximum open cursors exceeded". And the broker looses the DB lock and shuts down.

One solution would be to add a finally block onto the DefaultDatabaseLocker.keepAlive() method
to close statement explicitly.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message