I have the following scenario:
Program A Calls ---> Program B Calls-->Program C then
-------------------------Program B calls ---> Program D.
Program A is invoked by an IMS transaction A.
While testing in XPED, whenever there were some issues in program D and the program terminates, the DB(includes IMS and DB2 databases) changes till the call to D was made, got retained.
But, while testing outside XPED(as in, a real time scenario), when there are some issues in D all the DB changes made till then(including programs A , B and C) gets backed out.
Since this being a MPP transaction (transaction A) invoked program, I did not introduce any CHKPOINT within the programs.
<<My understanding was that, a MPP transaction COMMITS the changes after every call to a program.>>
Kindly let me know what needs to be done, if I want to retain the DB changes. (is there any way by which this can be done without using CHKPOINT).
My understanding is that, a MPP transaction COMMITS the changes when meet another GU message call/GOBACK/CHKP call. In my opinion, program B, C and D are considering as part of processing one message for original transaction A. XPED runs with generated online environment with your TSO ID which is not real online environment - I would consider it is batch environment.