Subject Invalid Request Handle
Author Scott Buckham
I wanted to follow up on a message that I found when looking into problems I
have had with "Invalid request handle".

>> From time to time i got the following execption in my logifile (with
>> Jaybird 1.5.5).
>>
>> If this error occurs once it happens again and again.
>> I think it's because of the connection pool that reuses this bad
>> connection. Would it be possible that the pool detects this kind of
errors
>> and discards the connection so that this error will not happen again ?

>Pool executes periodically a ping statement for the connection (controlled
>by "pingInterval" and "pingStatement" properties). In your case such
>connection should be removed from the pool automatically. If this does not
>work - then it's JayBird bug.

>You can check this by starting the ClassicServer with few connections in
the
>pool and multiple threads that take connections, execute some queries and
>return connections back to the pool. Then, if you simply kill one of the CS
>instances, one thread should show exceptions, that should disappear after
.the "pingInterval" milliseconds.

>Roman

The log I get is as follows (in case it is not the same issue).

net.sf.hibernate.exception.GenericJDBCException: Unable to perform find
at
net.sf.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQL
StateConverter.java:80)
at
net.sf.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:
69)
at
net.sf.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.j
ava:29)
at net.sf.hibernate.impl.SessionImpl.convert(SessionImpl.java:4131)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:3663)
at net.sf.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:238)
at
au.com.afgsoftware.pos.license.server.impl.LicenseServiceImpl.getAvailableLi
cense(LicenseServiceImpl.java:241)
at
au.com.afgsoftware.pos.license.server.impl.LicenseServiceImpl.registerLicens
ee(LicenseServiceImpl.java:189)
at sun.reflect.GeneratedMethodAccessor673.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
net.jini.jeri.BasicInvocationDispatcher.invoke(BasicInvocationDispatcher.jav
a:1137)
at
net.jini.jeri.BasicInvocationDispatcher.dispatch(BasicInvocationDispatcher.j
ava:621)
at
com.sun.jini.jeri.internal.runtime.ObjectTable$6.run(ObjectTable.java:606)
at
net.jini.export.ServerContext.doWithServerContext(ServerContext.java:116)
at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.dispatch0(ObjectTable.
java:604)
at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.access$700(ObjectTable
.java:225)
at
com.sun.jini.jeri.internal.runtime.ObjectTable$5.run(ObjectTable.java:579)
at
com.sun.jini.start.AggregatePolicyProvider$6.run(AggregatePolicyProvider.jav
a:540)
at java.security.AccessController.doPrivileged(Native Method)
at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.dispatch(ObjectTable.j
ava:576)
at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.dispatch(ObjectTable.j
ava:553)
at
com.sun.jini.jeri.internal.runtime.ObjectTable$RD.dispatch(ObjectTable.java:
780)
at
net.jini.jeri.connection.ServerConnectionManager$Dispatcher.dispatch(ServerC
onnectionManager.java:161)
at
com.sun.jini.jeri.internal.mux.MuxServer$2.run(MuxServer.java:250)
at
com.sun.jini.start.AggregatePolicyProvider$5.run(AggregatePolicyProvider.jav
a:526)
at java.security.AccessController.doPrivileged(Native Method)
at
com.sun.jini.jeri.internal.mux.MuxServer$1.run(MuxServer.java:247)
at com.sun.jini.thread.ThreadPool$Worker.run(ThreadPool.java:149)
at java.lang.Thread.run(Unknown Source)
Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544327.
invalid request handle
at
org.firebirdsql.jdbc.AbstractPreparedStatement.internalExecute(AbstractPrepa
redStatement.java:503)
at
org.firebirdsql.jdbc.AbstractPreparedStatement.executeQuery(AbstractPrepared
Statement.java:109)
at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingP
reparedStatement.java:92)
at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingP
reparedStatement.java:92)
at
net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:89)
at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:880)
at net.sf.hibernate.loader.Loader.doQuery(Loader.java:273)
at
net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader
.java:138)
at net.sf.hibernate.loader.Loader.doList(Loader.java:1063)
at net.sf.hibernate.loader.Loader.list(Loader.java:1054)
at
net.sf.hibernate.loader.CriteriaLoader.list(CriteriaLoader.java:118)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:3660)
... 25 more


I also noticed that 1 particular report of this problem occurred around the
use of BLOBs which is true in the case of this find.

We are using 1.5.6 jaybird and 1.5.2 Superserver architecture of
Firebirdsql.

Was this problem ever confirmed or could you suggest a solution based on
what I have provided?

Thankyou in advance,


Scott Buckham | |
AFJ Software Pty Ltd | Australia |QLD

Phone +61 7 3356 1677
Fax +61 7 3356 1676
Mobile +61 415 976 777

Web www.afjsoftware.com

________________________________

E-Mail Disclaimer
The Information in this e-mail is confidential and may be legally
privileged. It is intended solely for the addressee. Access to this e-mail
by anyone else is unauthorised. If you are not the intended recipient, any
disclosure, copying, distribution or any action taken or omitted to be taken
in reliance on it, is prohibited and may be unlawful. Any opinions or advice
contained in this e-mail are confidential and not for public display.