Resultset closing failed: ResultSet is closed
java.sql.SQLException: ResultSet is closed
at
sun.jdbc.odbc.JdbcOdbcResultSet.checkOpen(JdbcOdbcResultSet.java:6502)
at
sun.jdbc.odbc.JdbcOdbcResultSet.clearWarnings(JdbcOdbcResultSet.java:1748)
at
sun.jdbc.odbc.JdbcOdbcResultSet.close(JdbcOdbcResultSet.java:1452)
at com.p6spy.engine.spy.P6ResultSet.close(P6ResultSet.java:160)
at com.p6spy.engine.spy.P6ResultSet.close(P6ResultSet.java:160)
at com.p6spy.engine.spy.P6ResultSet.close(P6ResultSet.java:160)
at
org.apache.ojb.broker.platforms.PlatformDefaultImpl.beforeStatementClose(Unk
nown Source)
at
org.apache.ojb.broker.accesslayer.StatementManager.closeResources(Unknown
Source)
at
org.apache.ojb.broker.accesslayer.RsIterator.releaseDbResources(Unknown
Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCount(Unknown
Source)
at org.apache.ojb.broker.accesslayer.RsIterator.countedSize(Unknown
Source)
at org.apache.ojb.broker.accesslayer.RsIterator.size(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at org.apache.ojb.broker.server.RequestProcessor.execute(Unknown
Source)
at org.apache.ojb.broker.server.ConnectionHandler.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:536)
The Exception below is thrown by the JdbcOdbcDriver, but since it's saying
that the ResultSet is already closed, I'm not sure if it needs to show up in
the logs. Another question is WHY it might be thrown. I don't have the
answer to this yet. However, I would like to avoid logging the message, so I
have modified DefaultPlatformImpl to test for the message and not rethrow
the suggestion. Any ideas as to the possible origin or a better solution to
this problem are appreciated. Maybe a JdbcOdbcDriverPlatform implementation?
rethrown as org.apache.ojb.broker.platforms.PlatformException: Resultset
closing failed: ResultSet is closed
at
org.apache.ojb.broker.platforms.PlatformDefaultImpl.beforeStatementClose(Unk
nown Source)
at
org.apache.ojb.broker.accesslayer.StatementManager.closeResources(Unknown
Source)
at
org.apache.ojb.broker.accesslayer.RsIterator.releaseDbResources(Unknown
Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCount(Unknown
Source)
at org.apache.ojb.broker.accesslayer.RsIterator.countedSize(Unknown
Source)
at org.apache.ojb.broker.accesslayer.RsIterator.size(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
at org.apache.ojb.broker.server.RequestProcessor.execute(Unknown
Source)
at org.apache.ojb.broker.server.ConnectionHandler.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:536)
Caused by: java.sql.SQLException: ResultSet is closed
at
sun.jdbc.odbc.JdbcOdbcResultSet.checkOpen(JdbcOdbcResultSet.java:6502)
at
sun.jdbc.odbc.JdbcOdbcResultSet.clearWarnings(JdbcOdbcResultSet.java:1748)
at
sun.jdbc.odbc.JdbcOdbcResultSet.close(JdbcOdbcResultSet.java:1452)
at com.p6spy.engine.spy.P6ResultSet.close(P6ResultSet.java:160)
at com.p6spy.engine.spy.P6ResultSet.close(P6ResultSet.java:160)
at com.p6spy.engine.spy.P6ResultSet.close(P6ResultSet.java:160)
... 13 more
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:Jurgen.Richtsfeld@;tp-soft.com]
Sent: Tuesday, October 29, 2002 8:53 AM
To: [EMAIL PROTECTED]
Subject: client / server
hi!
now i tried to fix the crash (posting from some days ago). for that, i
modified class BrokerPool. when a PB is requested, it is checked, if the
PB is closed. in this case, a new PB is created and the old one of the
Vector is replaced with the new one. the new PB will be returned. the code
seems to work for me (in my cases). does anyone expect any sideeffects on
this implementation?
here my modification:
int getFreeBrokerId()
{
synchronized (freeBrokerIds)
{
while (freeBrokerIds.isEmpty())
{
try
{
freeBrokerIds.wait();
}
catch (InterruptedException e)
{
continue;
}
}
int result = ((Integer) freeBrokerIds.remove(0)).intValue();
if (logger.isDebugEnabled()) logger.debug("getFreeBrokerId: "
+ result);
if( ( ( PersistenceBrokerImpl ) brokers.get( result )
).isClosed() )
{
logger.debug( "creating new PersistenceBroker for id " +
result );
PBKey key = new PBKey( repositoryFile );
PersistenceBroker pb = new PersistenceBrokerImpl(key,
PersistenceBrokerFactoryFactory.instance() );
brokers.setElementAt( pb, result );
}
return result;
}
}
juergen
--
To unsubscribe, e-mail: <mailto:ojb-user-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:ojb-user-help@;jakarta.apache.org>
--
To unsubscribe, e-mail: <mailto:ojb-user-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:ojb-user-help@;jakarta.apache.org>