Any CICS transaction that uses CLIv2 requires a single transaction-related control block.
Every session that is logged on requires a session-related control block.
Every open request involves a request-related control block.
TRX, SES, and REQ should be set up based on the expected number of concurrent transactions, sessions, and requests.
The trade-off is the virtual storage commitment of large free chains versus the CPU overhead involved in GETMAIN/FREEMAIN if CLIv2 finds the free chain empty.
Formerly, the value of init specified the number of blocks to be initially allocated and placed on the free chain. This value now is ignored.
Blocks are now obtained only upon application request and are placed on the free chain when released.
The value of max specifies the maximum number of blocks that may be on the free chain.
If DBCHCL needs a block, it first attempts to satisfy the request from the free chain.
If it finds the free chain empty, it acquires a block through a CICS GETMAIN. At the time that the block is freed, DBCHCL compares the number of blocks currently allocated to the installation-specified max.
If fewer than max blocks are allocated, the block is placed on the free chain.
Otherwise, it is freed through a CICS FREEMAIN.