Subject Re: [firebird-support] Lost connection to firebird after execute procedure
Author Helen Borrie
At 12:38 PM 4/12/2004 +0000, you wrote:


>Hi, (sorry ... my English...) can anybody help?
>I have FB CS 1.0.3.972, IBO 4 and Delphi. Serwer Linux, GDB about
>2GB, clients W98,2000,XP.
>
>After execute stored procedure which returns data from few tables
>recalculated etc - show result in grid - everything works ok. Next
>when I open other window with other views (same database) and try to
>execute that procedure next time I get error 335544384. I can work
>on other tables, views but I can't execute that procedure till I
>close application and open next time.

When you say "execute stored procedure", what do you mean?
a) is it an executable stored procedure that returns a single row of
results following an EXECUTE PROCEDURE call?
or
b) is it a selectable stored procedure that includes a FOR
SELECT...INTO...DO...SUSPEND loop that returns a multi-row set upon a
SELECT <output list> FROM ... call?

Or is it a SP that actually changes some data and also returns a multi-row
set?

>I try same process on FB 1.5.1 - everything goes well without any
>error, but I can't change FB to 1.5 in production becouse of
>connection time (about 30-40 seconds - on FB 1.03 I can connect in
>few seconds to database). My customers will complaining too much.


>Can I do something to solve this problem?

Which problem? It seems you have at least two problems.

-- The first is that on Firebird 1.0 you have some condition where a
running SP blocks another transaction from running the same SP and
apparently returns an error related to a bad block (parameter?
transaction?). Does it occur at Prepare time or at run-time? I would want
to enable an ib_monitordialog in the application, to see what is being
passed to and from the server when this error occurs.

-- The second is that you have a connection-time problem with Fb 1.5 and
the particular version of IBO that you are using. For Fb 1.5 you need at
least IBO version 4.3Aa or, alternatively, to set the OldParameterOrdering
parameter in firebird.conf to 1 (true). With IBO 4.3Aa and above,
connection time is extended by a few milliseconds (not seconds!!) while the
connection object runs a query to determine whether it is talking to a
v.1.5 database.

Your Subject header suggests that you think the client connection is lost
after the [first instance?] of the SP is called. If that were the case,
then the client would not receive an error code from the server on the
second call. Something else is going on here.

The 335544384 is an unspecific "bad block" error that might well indicate
some kind of mismatch between the IBO version, the client, the server and
the actual database. The slow connection time problem with Fb 1.5 could
well entail one or more such mismatches.

Do you understand also that the Fb 1.5 Windows client is named fbclient.dll
and that you need to get the Windows kit and install the correct
client? For IBO, unless you perform the appropriate changes in your
software and recompile your application, you will need to rename this
client as gds32.dll and install it on all of the clients in their %system%
directory.

./heLen