Having retrieved the name of its current channel and, if necessary, the names of the containers in the channel, a server program can adjust its processing to suit the kind of data it has been passed. For a program creating a channel, the EXEC CICS ASSIGN CHANNEL command will return blanks unless the program issuing the command was invoked via an EXEC CICS START, EXEC CICS LINK or EXEC CICS XCTL command specifying a channel name.
Scope of a Channel
The scope of a channel is the code (i.e., the program or programs) from which it can be accessed. Figure 2 shows the scope of channel CHANNEL1, which consists of program A (the channel that created it), program B (for which it’s the current channel), and program C (for which it’s also the current channel). Additionally, we show the scope of channel CHANNEL2, which consists of program D (which created it) and program E (for which it’s the current channel).
Lifetime of a Channel
A channel is created when it’s named on an EXEC CICS command. The usual command to create a channel is the EXEC CICS PUT CONTAINER command, in which specifying the CHANNEL parameter will create the channel and also associate the container with it.
A channel will be deleted when it goes out of scope to the programs in the linkage stack of application programs CICS currently is using, meaning that no programs will be able to access it. This will cause CICS to delete the channel.
The data conversion model channel applications use is much simpler than the model COMMAREA applications use, as the CICS systems programmer controls data conversion in COMMAREA applications, whereas in channel applications, it’s used by the CICS application programmer, using simple EXEC CICS API commands.
Here are some cases where data conversion is necessary: