Subject Re: [Firebird-Java] Stored Procedure call errors
Author Blas Rodriguez Somoza
Hello

At 10/01/2003 18:41 +0000, you wrote:
>I'm using a basic org.firebirdsql.jdbc.FBDriver to call a stored
>procedure, however I get the error below. Any ideas?
>I'm using the latest binary release of JayBird.
>
>Exception occurred during event dispatching:
>java.lang.IllegalStateException: Can't destroy managed connection
>with active transaction
> at java.lang.Throwable.<init>(Throwable.java:96)
> at java.lang.Exception.<init>(Exception.java:44)
> at java.lang.RuntimeException.<init>(RuntimeException.java:49)
> at
>java.lang.IllegalStateException.<init>(IllegalStateException.java:47)
> at
>org.firebirdsql.jca.FBManagedConnection.destroy(FBManagedConnection.java:333)
> at
>org.firebirdsql.jca.FBStandAloneConnectionManager.connectionErrorOccurred(FBStandAloneConnectionManager.java:
>84)
> at
>org.firebirdsql.jca.FBManagedConnection$2.notify(FBManagedConnection.java:1121)
> at
>org.firebirdsql.jca.FBManagedConnection.notify(FBManagedConnection.java:1094)
> at
>org.firebirdsql.jca.FBManagedConnection.checkFatal(FBManagedConnection.java:726)
> at
>org.firebirdsql.jca.FBManagedConnection.executeStatement(FBManagedConnection.java:791)
> at
>org.firebirdsql.jdbc.FBConnection.executeStatement(FBConnection.java:1072)
> at
>org.firebirdsql.jdbc.FBPreparedStatement.internalExecute(FBPreparedStatement.java:415)
> at
>org.firebirdsql.jdbc.FBPreparedStatement.executeQuery(FBPreparedStatement.java:96)

The error you get is not the real one. Recently some code was added to the driver to deal with fatal errors on connections . The code try to destroy the connection if there is a fatal error on it, the error you get is because the connection can't be closed.

To discover the real error, that apparently it is not related with a fatal error in the connection the best method is to work with the fatal error definition in the ISCConstants class.

Can work with the CVS version of the driver?. If so, modify the FATAL_ERRORS leaving it empty and then try again, then you will get the real error. Theoretically the errors included in the FATAL_ERRORS class are not thrown when you try to execute a procedure, but it seems there is some error in it.

If you have too much problems to create the binary version from CVS, tell me and I send you a jar with the modified version.

Regards
Blas Rodriguez Somoza