Joined: 14 Jan 2008 Posts: 2504 Location: Atlanta, Georgia, USA
I've got a CICS COBOL Program "A", which calls (not links) to a CICS/Assembler sub-program. In this sub-program, I'm addressing the LE "CAA" (R12-Based --- Common Anchor Area), which is created by the LE-compliant COBOL program and within this DSECT, there's a User-Label "CEECAA_USER_WORD" (a fullword), which IBM has designated for "User" use. The Assembler sub-program is issuing a CICS GETMAIN and I'm stashing this address in this above fullword and then returning to the Calling COBOL program.
Now my "LE" question. After control is returned from the Assembler sub-program, this same CICS/COBOL program calls (not links) to another CICS/COBOL program, who in turn calls this CICS/Assembler sub-program, will this create a new "CAA" or will it be the same one?
I'm hoping it's a new one but I'm afraid that it will be the same one.
Joined: 24 May 2006 Posts: 258 Location: Salem, Oregon
When the application ends, the final value in CEECAA_USER_WORD is not copied back into the area associated with the environment token. When the next application is started using a function such as (call_main), (call_sub), or(call_sub_addr), the user word value last established by (set_user_word) is used again.
•The user word associated with the environment token is initialized to 0 when (init_main), (init_main_dp), (init_sub), or (init_sub_dp) is done. The CAA for the initial process thread is initialized with 0 if no (set_user_word) function call has been done before the application is started.