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_reported:
version_resolved:
reviewer:
production:
No
env_name:
topics:
History
#1 Updated by Constantin Asofiei over 3 years 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.