Subject | TIB_TimeoutProps and Transaction Commit Clarification Request |
---|---|
Author | jack_engleman |
Post date | 2007-01-25T04:12:38Z |
I have converted my BDE application that is using Firebird 1.5.3 to
IBO4.6Bc. The application is running well, with some bugs that are
being fixed as I run into them. I seem to occasionally run into a
problem with a transaction holding up other transactions, and after
the OAT does it's thing it will timeout the blockage and then work can
proceed in that area of the program.
I am interesting to tinkering with the timeouts, to shorten them so
that if a transaction is blocked, it will terminate after a shorter
period of time.
I use Terminal Services to give me the speed I need to perform all
work on a Windows 2000 or 2003 Based Server. Orders can be put into
the system in as little as 30 seconds, but probably average about a
minute per order, but could last as long as 10 minutes, if a sales
clerk takes there time talking to a customer as the order is put into
the system.
I have a lot of reports that can be run to check order status and most
of these are done without using physical transactions and most run in
less than a minute.
With the above in mind I have few Questions:
1) Is the AllowCheckOAT time in clock time or is it in CPU time??
If it is CPU time then I would assume a slowdown in transactions being
saved and committed due to other users accessing the system would be
accounted for. If it is Clock time then I would have to estimate how
long these transactions could take on a very active system...
2) I have a situation where a store will place an order that is
finished and committed to the database, and the clerk will then call
the warehouse to expedite that order and get it approved for a rush.
Several times the order cannot be brought up on a terminal by the
plant, but if the Clerk at the store gets out the program, then the
order is accessible at the plant. The Code I am using for my physical
transactions is as below. Database_M is a TIBODatabase Object.
if (Database_M.TransactionState <> tsNone) then
begin
for lcv := 0 to DataBase_M.TransactionCount - 1 do
Database_M.Transactions[lcv].Commit;
// Database_M.Commit;
end;
Any comments would be welcome to solve these two issues.
Thanks In Advance
Jack Engleman
IBO4.6Bc. The application is running well, with some bugs that are
being fixed as I run into them. I seem to occasionally run into a
problem with a transaction holding up other transactions, and after
the OAT does it's thing it will timeout the blockage and then work can
proceed in that area of the program.
I am interesting to tinkering with the timeouts, to shorten them so
that if a transaction is blocked, it will terminate after a shorter
period of time.
I use Terminal Services to give me the speed I need to perform all
work on a Windows 2000 or 2003 Based Server. Orders can be put into
the system in as little as 30 seconds, but probably average about a
minute per order, but could last as long as 10 minutes, if a sales
clerk takes there time talking to a customer as the order is put into
the system.
I have a lot of reports that can be run to check order status and most
of these are done without using physical transactions and most run in
less than a minute.
With the above in mind I have few Questions:
1) Is the AllowCheckOAT time in clock time or is it in CPU time??
If it is CPU time then I would assume a slowdown in transactions being
saved and committed due to other users accessing the system would be
accounted for. If it is Clock time then I would have to estimate how
long these transactions could take on a very active system...
2) I have a situation where a store will place an order that is
finished and committed to the database, and the clerk will then call
the warehouse to expedite that order and get it approved for a rush.
Several times the order cannot be brought up on a terminal by the
plant, but if the Clerk at the store gets out the program, then the
order is accessible at the plant. The Code I am using for my physical
transactions is as below. Database_M is a TIBODatabase Object.
if (Database_M.TransactionState <> tsNone) then
begin
for lcv := 0 to DataBase_M.TransactionCount - 1 do
Database_M.Transactions[lcv].Commit;
// Database_M.Commit;
end;
Any comments would be welcome to solve these two issues.
Thanks In Advance
Jack Engleman