This page shows various ways to LINK REMOTE and helps understand how CICS handles mirror task creation and disposal.
In the first example, the main task issues three LINK REMOTE commands. After the second LINK, it issues SYNCPOINT.
We can clearly see, that a mirror was created upon the first LINK. In the second LINK, the same mirror task was reused.
After the SYNCPOINT in the main task, the mirror ended. And hence, the thir LINK caused a new mirror to begin.
In each invocation, the mirror task issued GETMAIN and INQUIRE STORAGE NUMELEMENTS. The value of NUMELEMENTS was stored in a zoned PIC 9(3) field, and written to a TSQ. When we zoom on the content of the TSQ, we can see the value of the item. We see that during the second LINK, NUMELEMENTS was 11 and then 13. Since the third LINK was preceded by a SYNCPOINT, we had a new mirror task, and NUMELEMENTS is now lower (8).
I'm a paragraph. Click here to add your own text and edit me. It's easy.
When SYNCONRETURN parameter is added to the remote LINK, the mirror task ends upon return from each invocation.
We can also see the differences in the Task List page.
In both cases, one task started itself five times, and each SUBTASK linked to the mirror many times without issuing SYNCPOINT.
In the first five tasks, there was no SYNCONRETURN. As a result, the same mirror was used again and again. That's why we have one mirror per main task.
In the following tasks, we LINKed using parameter SYNCONRETURN. Due to this parameter, CICS ends the mirror upon return from each and every LINK, and therefore create a new mirror task for every LINK. That's why we see so many mirror tasks associated with each main task.