Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 5 of 5 total
Thread Transaction timeout
Sat, Feb 6 2016 7:35 AMPermanent Link

Jose Eduardo Helminsky

HPro Informatica

I know we have to keep the transaction time shortest possible but sometimes wrong code, big processes, etc. can slow down a lot a duration of a transaction and other users can be affect with that.

Is it possible to configure a timeout for a transaction ?

For example, if the transaction does not acquire the database lock in 60 seconds then it throws an exception.

It will be amazing to show a message to the users like "Database is busy with other things, try again after 5 minutes".
Sat, Feb 6 2016 10:02 AMPermanent Link

Raul

Team Elevate Team Elevate

<<Jose Eduardo Helminsky wrote:
I know we have to keep the transaction time shortest possible but sometimes wrong code, big processes, etc. can slow down a lot a duration of a transaction and other users can be affect with that.
Is it possible to configure a timeout for a transaction ?
For example, if the transaction does not acquire the database lock in 60 seconds then it throws an exception.
It will be amazing to show a message to the users like "Database is busy with other things, try again after 5 minutes".
>>

You should be able to achieve this using the TableTransLockWaitTime and TableTransLockRetryCount engine settings and handling the appropriate exception in code. These settings do have default values already so all of it is active - possible timings and retries are such that you're not running into it though.
These and few other lock related settings are all under "Customizing the engine" section of the manual (look for Reserved Customizations section).

Note that misconfiguring these could result in more problems - hence the note about only changing these based on elevatesoft recommendations.

Raul
Mon, Feb 8 2016 6:18 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Eduardo,

<< Is it possible to configure a timeout for a transaction ? >>

Raul's answer is correct:

http://www.elevatesoft.com/manual?action=viewprop&id=dbisam4&product=rsdelphi&version=XE
&comp=TDBISAMEngine&prop=TableTransLockRetryCount

http://www.elevatesoft.com/manual?action=viewprop&id=dbisam4&product=rsdelphi&version=XE
&comp=TDBISAMEngine&prop=TableTransLockWaitTime

Tim Young
Elevate Software
www.elevatesoft.com
Wed, Feb 10 2016 8:21 AMPermanent Link

Jose Eduardo Helminsky

HPro Informatica

Tim and Raul

I know the risks involved but I think it worths a try.

Does it work in C/S ? IOW, these engine settings can be configured at client session ?

I have read the manual but there are no description of these properties "TableTransLockWaitTime" and
"TableTransLockRetryCount".

With the engine inactive
TableTransLockWaitTime = 60 seconds or 60 * 1000 miliseconds ?
And what the purpose of the property TableTransLockRetryCount ?

Thanks in advance
Thu, Feb 11 2016 6:31 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Eduardo,

<< Does it work in C/S ? >>

Yes.

<< IOW, these engine settings can be configured at client session ? >>

No, it's an engine-level setting, and must be configured for the entire server.

ElevateDB offers a per-call transaction timeout.

Tim Young
Elevate Software
www.elevatesoft.com
Image