Determining the Statement Timeout that is In Effect
The statement timeout value that is in effect is determined whenever a statement starts executing, or a cursor is opened.In searching out the timeout in effect, the engine goes up through the levels, from statement through to database and/or global levels until it finds a non-zero value.If the value in effect turns out to be zero then no statement timer is running and no timeout applies.
A statement-level or connection-level timeout can override the value of a database-level setting, as long as the period of time for the lower-level setting is no longer than any non-zero timeout that is applicable at database level.
Important
|
Take note of the difference between the time units at each level.At database level, in the conf file, the unit for Absolute precision is not guaranteed in any case, especially when the system load is high, but timeouts are guaranteed not to expire earlier than the moment specified. |
Whenever a statement times out and is cancelled, the next user API call returns the error isc_cancelled
with a secondary error specifying the exact reason, viz.,
isc_cfg_stmt_timeout
-
Config level timeout expired
isc_att_stmt_timeout
-
Attachment level timeout expired
isc_req_stmt_timeout
-
Statement level timeout expired
Note
|
Notes about Statement Timeouts
|