I posted this to cics-l but haven't gotten any response, so I figure I should post it here as well.
I'm pondering using channel containers in places where we currently use temporary storage queues. There are advantages to containers, but they are also lacking some features. I'm wondering about other peoples' thoughts on these matters.
Advantages of channel containers over temporary storge queues:
- Not limited to 32k per record.
- Not limited to 32k records.
- Not shared between separate tasks (but can be used to pass data to a new task).
- Automatically cleaned up at task termination (unless explicitly passed to a new task).
Disadvantages of channel containers over temporary storge queues:
- Byte based instead of record based.
- Cannot update part of a container without replacing all of the data within the container.
- Simulation of fixed length records in containers is slightly more complex than dealing with an actual record- based storage.
- Simulation of variable-length records in containers, while possible, is not at all straightforward.
I think most of the disadvantages are a result of designing channel containers as replacements for COMMAREA and not really designing them as a replacement for TS queues. Would I be going in the wrong direction by using containers as a replacement for TS queues. The main issue I'm running in to currently is we have "client" programs that link to "service" programs and currently use TS queues to pass back some of the results. Specifically, results that are "record based". But we're concerned about hitting the limit of the number of records in the queue. We already ran in to an issue when we hit more than 10,000 records, because the COBOL data field that held the "item number" was defined as PIC S9(4) COMP, which (as per standard COBOL behavior) rolled over from 9999 to 0 when we added 1 to it. This was fixed by changing it to a COMP-5 ("native binary"), but we're still limited by the fact that a half-word signed native binary field has a maximum value of 32767.
I can think of several enhancements that CICS should support, but who knows when or if they would be implemented.
------------------------------
Frank Swarbrick
------------------------------