Subject | PessemisticLocking performs commit retaining |
---|---|
Author | xpl_nico |
Post date | 2003-03-31T10:34:24Z |
Hi,
I have a table that uses a field "Locked" to "Filter" out locking
updates in my table-triggers.
My LockSQL sets the field value to 1.
The problem i'm facing is that when i start editting a record and
rollback the changes with a rollback, the locking update wont
rollback and keeping the field value of Locked to 1.Looking at the
monitor IBO does a CommitRetaining after the LockSQL has run.Is this
due a setting of my IBOQuery/Transaction/Connection.Any way to
prevent this ?
IMHO the CommitRetaining isn't nessecary.Include the monitor's log.
Autocommit = false
CommitAction = caClose
TIA,
Nico.
/*---
PREPARE STATEMENT
TR_HANDLE = 29679588
STMT_HANDLE = 18049372
UPDATE BS_GLACCNT
SET LOCKED=1
WHERE BS_GLACCNTID = ? /* OLD.BS_GLACCNTID */
PLAN (BS_GLACCNT INDEX (GLACCNT_PK))
FIELDS = [ Version 1 SQLd 0 SQLn 30 ]
----*/
/*---
EXECUTE STATEMENT
TR_HANDLE = 29679588
STMT_HANDLE = 18049372
PARAMS = [ Version 1 SQLd 1 SQLn 1
OLD.[BS_GLACCNTID] = 'A49' ]
SELECT COUNT: 1
UPDATE COUNT: 1
----*/
/*---
COMMIT RETAINING
TR_HANDLE = 29679588
SECONDS = 0,020
----*/
/*---
ROLLBACK
TR_HANDLE = 29679588
SECONDS = 0,010
I have a table that uses a field "Locked" to "Filter" out locking
updates in my table-triggers.
My LockSQL sets the field value to 1.
The problem i'm facing is that when i start editting a record and
rollback the changes with a rollback, the locking update wont
rollback and keeping the field value of Locked to 1.Looking at the
monitor IBO does a CommitRetaining after the LockSQL has run.Is this
due a setting of my IBOQuery/Transaction/Connection.Any way to
prevent this ?
IMHO the CommitRetaining isn't nessecary.Include the monitor's log.
Autocommit = false
CommitAction = caClose
TIA,
Nico.
/*---
PREPARE STATEMENT
TR_HANDLE = 29679588
STMT_HANDLE = 18049372
UPDATE BS_GLACCNT
SET LOCKED=1
WHERE BS_GLACCNTID = ? /* OLD.BS_GLACCNTID */
PLAN (BS_GLACCNT INDEX (GLACCNT_PK))
FIELDS = [ Version 1 SQLd 0 SQLn 30 ]
----*/
/*---
EXECUTE STATEMENT
TR_HANDLE = 29679588
STMT_HANDLE = 18049372
PARAMS = [ Version 1 SQLd 1 SQLn 1
OLD.[BS_GLACCNTID] = 'A49' ]
SELECT COUNT: 1
UPDATE COUNT: 1
----*/
/*---
COMMIT RETAINING
TR_HANDLE = 29679588
SECONDS = 0,020
----*/
/*---
ROLLBACK
TR_HANDLE = 29679588
SECONDS = 0,010