Introduction to channels and containers
Channels and containers provide a method of transferring data between CICS® programs, in amounts that exceed the 32 KB limit that applies to communication areas (COMMAREAs).
Each container is a named block of binary (BIT) or character (CHAR) data that is not limited to 32 KB. Containers are grouped together in sets called channels.
The channel and container model has several advantages over the
communication areas (COMMAREAs) used by CICS programs
to exchange data:
- Unlike COMMAREAs, channels are not limited in size. Any number of containers can be added to a channel, and the size of individual containers is limited only by the amount of storage that you have available. Consider the amount of storage available to other applications when you create large containers.
- Because a channel can consist of multiple containers, it can be used to pass data in a more structured way, allowing you to partition your data into logical entities. In contrast, a COMMAREA is a monolithic block of data.
- Unlike COMMAREAs, channels do not require the programs that use them to keep track of the size of the data.
- CICS automatically destroys containers and their storage when they are no longer required.
When you are using channels and containers in preference to COMMAREAs,
note that:
- A channel can use more storage than a COMMAREA to pass the same data.
- Container data can be held in more than one place.
- COMMAREAs are accessed by pointer, whereas the data in containers is copied between programs.
For more information about using channels and containers see the
following topics:
- Using channels and containers in the JCA framework, see Using the ECI resource adapter with channels and containers.
- Using channels and containers with ECI calls for Java™ clients, see Creating Java channels and containers for ECI calls.
- Using channels and containers with ECI V2 calls for C clients, see Using channels and containers in ECI V2 applications
- Using channels and containers with ECI calls for NET Framework and .NET Core based client applications, see Using channels and containers in Microsoft .NET Framework-based and .NET Core programs.