Subject Transaction problem
Author Gong Er
Hello,

I have encountered the problem with two simultaneously running
applications.
We use Firebird 1.51, Delphi7, FibPlus.
The scenario for programs operation is:
First program (Monitor) bills calls,
each billing includes adding new transaction and updating
current invoice balance.
Second program (User client) shows the list with all invoices and
their balances.
We test the situation when there a large amount (4000 for example)
calls for the same invoice.
If User client isn't running all is fine: Monitor processes approx.
30-40 calls per second.
If User client running then the speed is going down and at the end of
test it takes about 4 second for one call process. :(
My test shows that the real slowdown statement is
update INVOICE
set SALDO = SALDO + :F_TRNSUM
where INVOICEID = :INVOICEID;
i. e. updating invoice current balance as the new transaction added.
I think that it is because User client program is showing the list of
invoices with their balanses at the same time.

User client program uses transaction with the following (FibPlus)
parameters:
'read'
'wait'
'rec_version'
'read_committed'

Could you please help me with this problem?

maybe our transaction parameters are unsuitable for this situation?




Best regards,
Vadim Khrasko