Bug #6904
fix TRANSACTION block issues
Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:
0%
billable:
No
vendor_id:
GCD
case_num:
version:
History
#1 Updated by Constantin Asofiei over 1 year ago
- File kb13974.pdf added
For example, this program:
procedure proc0. def input param p1 as log. for each book exclusive-lock: pause. message locked(book). for each customer exclusive-lock: if p1 then delete customer. end. end. for each customer exclusive-lock: if p1 then delete customer. end. end. run proc0(no).
will show no TX support for the outer
FOR EACH book
block:Also, the listing of the program:
.\p1.p 10/27/2022 13:12:25 PROGRESS(R) Page 1 {} Line Blk -- ---- --- 1 procedure proc0. 2 def input param p1 as log. 3 4 1 for each book exclusive-lock: 5 1 pause. 6 1 message locked(book). 7 2 for each customer exclusive-lock: 8 2 if p1 then delete customer. 9 1 end. 10 end. 11 12 1 for each customer exclusive-lock: 13 1 if p1 then delete customer. 14 end. 15 end. 16 17 run proc0(no). .\p1.p 10/27/2022 13:12:25 PROGRESS(R) Page 2 File Name Line Blk. Type Tran Blk. Label -------------------- ---- ----------- ---- -------------------------------- .\p1.p 1 Procedure No Procedure proc0 .\p1.p 4 For No .\p1.p 7 For Yes .\p1.p 12 For Yes .\p1.p 0 Procedure No Buffers: p2j_test.customer p2j_test.Book
In FWD, the block will have full TX mark.
Also, if you duplicate proc0
in a proc1
(after the proc0
definition), then in proc1
, the outer FOR EACH block
will not have a full TX in FWD.
KB13974 mentions some cases where full TX is not being set at a block.
In #6339 there was some work done to fix this, but this case was not fixed:
.\a.p 06/27/2022 14:53:25 PROGRESS(R) Page 1 {} Line Blk -- ---- --- 1 procedure proc1. 2 1 for each book exclusive-lock. 3 1 message transaction book.isbn locked(book). 4 end. 5 end. 6 7 run proc1. .\a.p 06/27/2022 14:53:25 PROGRESS(R) Page 2 File Name Line Blk. Type Tran Blk. Label -------------------- ---- ----------- ---- -------------------------------- .\a.p 1 Procedure No Procedure proc1 .\a.p 2 For No .\a.p 0 Procedure No Buffers: p2j_test.Book
My assumption at this time is because the book
scope is expanded to the external program, then full TX is not emitted in OE.