Hello,
i'am currently run into a strange problem with fast subsequent updates in the same table.
The application is quite complex, so its difficult to to sent a code snippet, i included the network traffic instead:
This is whats happening:
---
T 192.168.195.100:5432 -> 192.168.195.1:56810 [AP]
CBEGIN.Z
T 192.168.195.1:56810 -> 192.168.195.100:5432 [AP]
QSELECT * FROM vsysuserfilter_106_u WHERE filter_id=10 FOR UPDATE OF vsysuserfilter_106_u.
T 192.168.195.100:5432 -> 192.168.195.1:56810 [AP]
Pblank.T..datasource..........Dfilter_column...........filter_id...........filter_string...........filter_type...........userremark...........D.....vtblemloyee_firm_groups....eMail....10....mail....1....mailCSELECT.Z
T 192.168.195.1:56810 -> 192.168.195.100:5432 [AP]
QSELECT * FROM vsysuserfilter_108_u WHERE filter_id=10 FOR UPDATE OF vsysuserfilter_108_u.
T 192.168.195.100:5432 -> 192.168.195.1:56810 [AP]
Pblank.T..datasource..........Dfilter_column...........filter_id...........filter_string...........filter_type...........userremark...........D.....vtblemloyee_firm_groups....eMail....10....mail....1....mailCSELECT.Z
T 192.168.195.1:56810 -> 192.168.195.100:5432 [AP]
QUPDATE vsysuserfilter_106_u SET "filter_column" = 'eMail' WHERE "filter_id" = 10.
T 192.168.195.100:5432 -> 192.168.195.1:56810 [AP]
Pblank.CUPDATE 1.Z
T 192.168.195.1:56810 -> 192.168.195.100:5432 [AP]
Qcommit;begin;.
T 192.168.195.100:5432 -> 192.168.195.1:56810 [AP]
CCOMMIT.EERROR: Query was cancelled...
---
So why comes the commit-error?
Notes:
The select-for-updates above go on views which have update-rules, both views go on the same target table and record but
dohave different columns included, not always both are required, but
that can't be known at the time the select-for-update is initiated. Not sure if that is important here.
I already had a look into the postmaster log at debug level 5 and found nothing suitable.
Thanks for any help,
Guido