I read some more code... My line of attack was wrong.
StatementManager.getPreparedStatement() is infact called with an SQL string
so there is no caching of PreparedStatement Objects as such... but than how
can
we get "Invalid statement handle or statement is closed" from db ?

I am assuming if the PB was closed... we'd have recieved
"java.lang.IllegalStateException" much earlier in
the stack (on a DelegatingPB.getBroker() call)...

Is it possible that the connection was closed ? without calling
PB.close()...
BTW we are using connections from app server by declaring a Data Source in
app server

-akhil

"nntp://news.gmane.org/gmane.group.name"; <[EMAIL PROTECTED]> wrote in
message news:[EMAIL PROTECTED]
> Hi,
>
> We have started facing this issue randomly on RC4.
> Using PB API under AppServer. Called from SLSBs.
> Each session calls the PBFactory().getdefaultBroker()... uses it and
called
> PB.close().
> intermittently we are getting an SQLException which means the
> PreparedStatement was closed (stack trace below)
>
> Any ideas when/how this can happen ?
> Is there a non-caching alternative to "StatementsForClassImpl"
> (just to build in the thaught... we wont face this if we do no cache
> PreparedStatements)
>
> TIA
> akhil
>
> rethrown as org.apache.ojb.broker.PersistenceBrokerSQLException:
> [IBM][JDBCDriver] CLI0601E Invalid statement handle or statement is
> closed.SQLSTATE=S1000
> at
>
org.apache.ojb.broker.accesslayer.StatementsForClassImpl.getPreparedStmt(Sta
> tementsForClassImpl.java:188)
>
> at
>
org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Stat
> ementManager.java:680)
>
> at
>
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(JdbcAccessImpl
> .java:266)
>
> at
org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:200)
>
> at
>
org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIterator
> FactoryImpl.java:95)
>
> at
>
org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Pers
> istenceBrokerImpl.java:2371)
>
> at
>
org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Persis
> tenceBrokerImpl.java:1712)
>
> at
>
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Persis
> tenceBrokerImpl.java:1343)
>
> at
>
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Persis
> tenceBrokerImpl.java:1515)
>
> at
>
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Persis
> tenceBrokerImpl.java:1551)
>
> at
>
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Persis
> tenceBrokerImpl.java:1540)
>
> at
>
org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Persistenc
> eBrokerImpl.java:1802)
>
> at
>
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Dele
> gatingPersistenceBroker.java:286)
>
> at
>
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Dele
> gatingPersistenceBroker.java:286)




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to