we are using IBDAC with our application and for a while we have problems with open transactions.
After several checks over the MON$ tables we found, that a select statement from a IBDAC component is involved with the open transactions.
So I would ask you, if you just have heard from this problem?
We have running a firebird database on a server and our application on a other server. The two servers are in two different networks.
To control the incoming and outgoing network traffic between these networks is used a firewall. Unfortunately we don't manage the firewall.
So we asume that the firewall sometimes will cut us the communication and then the transaction from this select statement remains open:
Code: Select all
SQL := 'SELECT CST.RDB$CHARACTER_SET_ID CONN_CH, CST.RDB$BYTES_PER_CHARACTER CONN_CH_LEN,' + #13#10 +
'DB.RDB$CHARACTER_SET_NAME DB_CH, DB_CST.RDB$BYTES_PER_CHARACTER DB_CH_LEN, ' +
'DB_CST.RDB$CHARACTER_SET_ID DB_CH_ID' + #13#10 +
'FROM RDB$CHARACTER_SETS CST, RDB$DATABASE DB, RDB$CHARACTER_SETS DB_CST' + #13#10 +
'WHERE (DB_CST.RDB$CHARACTER_SET_NAME = DB.RDB$CHARACTER_SET_NAME)';
if CharsetIdNeeded then
SQL := SQL + #13#10 + 'AND (CST.RDB$CHARACTER_SET_NAME = UPPER(''' + vCharset + '''))'
else
SQL := SQL + #13#10 + 'AND (CST.RDB$CHARACTER_SET_NAME = DB.RDB$CHARACTER_SET_NAME)';
Do you can tell me, why this select statement of the transaction remains open?
We use IBDAC Version 4.6.12 on Delphi2009! IsolationLevel ReadCommitted!
Firebird 2.5.1 and Firebird 2.5.4 on Windows Server 2008 and 2012 and clients on Win XP and Win 7!
Thanks in advanced!