Multiple commareas

If the batch request utility cannot fit all the commands for a CICS® region in the same 32 KB commarea, the batch request utility sends the commarea as a first part of the total request. The processing in the CICS region is then as follows:
  • A request server is initiated in the receiving CICS region to process the request. The request server detects that it is only a partial command block, therefore it writes the commarea to a CICS TS queue and returns to the batch request utility.
  • When the CICS region receives a follow-on commarea from the batch request utility, it initiates a request server transaction, which recognizes the input as another partial command block. The request server writes this second command block as the second item in the TS queue, then returns to the batch request utility again.
  • Each initiated CICS BAC request server stores partial requests in the same TS queue until the server receives the final command block. The request server reads the previous items from the TS queue and reassembles all the original commareas into a single piece of contiguous storage.
  • When all the partial requests are reassembled, the request server transaction links to another CICS BAC program to service the requests. If one of the requests is a LINK or RUNCEMT command, CICS BAC links to either the specified application program or DFHEMTA to service the command. When all commands are processed (or if an error is detected), the CICS BAC processing program returns control back to the CICS BAC request server program.
  • If the CICS request server finds that the return commarea is larger than 32 KB, it breaks it up into an appropriate number of blocks and writes the second and subsequent blocks to a TS queue. The CICS request server puts the first block in the return commarea, then returns to the batch request utility
  • The batch request utility recognizes that it has only received part of the results and saves it in main storage, and issues another EXCI request to the CICS request server to return the rest of the data. This process continues until the request server has exhausted the TS queue, with the batch request utility appending the partial results in its main storage area until complete. When the final block of returned data has been received, the batch request utility continues processing as if the returned data had fitted into a single commarea.