-
1. Re: JBossMQ: ORA-01000: maximum open cursors exceeded
adrian.brock Apr 1, 2003 2:22 PM (in response to mtf1965)I recently fixed a bug that will be available in
3.0.7 and 3.2 where it wasn't closing a
statement.
It could also be that your application isn't closing
connections since they share the same pool.
Regards,
Adrian -
2. Re: JBossMQ: ORA-01000: maximum open cursors exceeded
dhe Apr 3, 2003 2:34 AM (in response to mtf1965)When is 3.0.7 available?
-
3. Re: JBossMQ: ORA-01000: maximum open cursors exceeded
adrian.brock Apr 3, 2003 12:02 PM (in response to mtf1965)Not sure.
We are currently working on 3.2 final which
is due out. There are a few remaining problems
to address.
Once that is out the door, 3.0.7 will be next.
Regards,
Adrian -
4. Re: JBossMQ: ORA-01000: maximum open cursors exceeded
platinum Apr 4, 2003 9:02 PM (in response to mtf1965)Hello,
Please teach me how to avoid this problem except for waiting fot 3.0.7 release.
Thank you. -
5. Re: JBossMQ: ORA-01000: maximum open cursors exceeded
adrian.brock Apr 4, 2003 10:25 PM (in response to mtf1965)The fix is in
org.jboss.mq.pm.jdbc2.PersistenceManager
The try block with stmt.close() was missing
public org.jboss.mq.pm.Tx createPersistentTx() throws JMSException
{
org.jboss.mq.pm.Tx id = new org.jboss.mq.pm.Tx(nextTransactionId++);
TransactionManagerStrategy tms = new TransactionManagerStrategy();
tms.startTX();
Connection c = null;
PreparedStatement stmt = null;
boolean threadWasInterrupted = Thread.currentThread().interrupted();
try
{
c = datasource.getConnection();
stmt = c.prepareStatement(INSERT_TX);
stmt.setLong(1, id.longValue());
stmt.executeUpdate();
}
catch (SQLException e)
{
tms.setRollbackOnly();
throw new SpyJMSException("Could not crate tx: " + id, e);
}
finally
{
try
{
stmt.close();
}
catch (Throwable e)
{
}
try
{
c.close();
}
catch (Throwable ignore)
{
}
tms.endTX();
// Restore the interrupted state of the thread
if( threadWasInterrupted )
Thread.currentThread().interrupt();
}
return id;
}
Regards,
Adrian