Subject Detect invalid request handle and remove connection from pool
Author Carsten Schäfer
From time to time i got the following execption in my logifile (with
Jaybird 1.5.5).

org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544327. invalid
request handle
at
org.firebirdsql.jdbc.AbstractPreparedStatement.internalExecute(AbstractPreparedStatement.java:503)
at
org.firebirdsql.jdbc.AbstractPreparedStatement.executeUpdate(AbstractPreparedStatement.java:144)
at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.firebirdsql.pool.PooledPreparedStatementHandler.invoke(PooledPreparedStatementHandler.java:174)
at org.firebirdsql.pool.$Proxy1.executeUpdate(Unknown Source)
at
com.TTC_Informatik.PAULA.general.WBH_Charge.ersetzen(WBH_Charge.java:672)
at
com.TTC_Informatik.PAULA.server.App_Server.updateCharge(App_Server.java:11769)
at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown
Source)
at java.lang.Thread.run(Unknown Source)
at org.firebirdsql.gds.GDSException: invalid request handle
at
org.firebirdsql.jdbc.AbstractConnection.executeStatement(AbstractConnection.java:945)
at
org.firebirdsql.jdbc.AbstractPreparedStatement.internalExecute(AbstractPreparedStatement.java:499)
at
org.firebirdsql.jdbc.AbstractPreparedStatement.executeUpdate(AbstractPreparedStatement.java:144)
at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.firebirdsql.pool.PooledPreparedStatementHandler.invoke(PooledPreparedStatementHandler.java:174)
at org.firebirdsql.pool.$Proxy1.executeUpdate(Unknown Source)
at
com.TTC_Informatik.PAULA.general.WBH_Charge.ersetzen(WBH_Charge.java:672)
at
com.TTC_Informatik.PAULA.server.App_Server.updateCharge(App_Server.java:11769)
at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown
Source)
at java.lang.Thread.run(Unknown Source)


(For my configuration see my messages from 6.7.)
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 ?

Or is it possible for me to remove bad connections from the pool manually ?

mfg
Carsten