SNAX/HLS Application Programming Manual
Life Cycle of a Session
Sessions
104707 Tandem Computers Incorporated 3–7
When the RECEIVE–DATA verb is used to receive partner data, the read count on the
WRITEREAD operation that carries the RECEIVE–DATA request should be large
enough to receive the incoming data. The RECEIVE–DATA verb remains outstanding
until data arrives. This can cause physical memory in the application to be tied down
for extended periods of time. If the memory resources are constrained within your
application environment, you can use the RECEIVE–CONTROL–WAIT verb and the
RECEIVE–DATA verb to receive partner data.
As the RECEIVE–CONTROL–WAIT verb does not actually dequeue partner data, the
read count in the WRITEREAD procedure call does not have to allow for it. When
partner data arrives, the RECEIVE–CONTROL–WAIT verb completes, and a
RECEIVE–DATA verb may then be issued with a suitable read count to retrieve the
data. This method of retrieving the data is less efficient in that two I/Os are required.
If the message size that your application must typically receive is large, and you still
want to use the RECEIVE–DATA verb exclusively, you can use the Large Message
Option (LMO) to reduce the size of the read count your application needs to receive
data.
Utility Verbs In some application languages used with SNAX/HLS (for example, SCOBOLX),
manipulation of binary fields can be cumbersome. Given that SNA sense codes
contain binary fields, the CONVERT–ERROR–CODE verb is supported to decode
binary fields for the programmer. Following conversion, the decoded fields can be
logged or displayed to a terminal.
In addition, CONVERT–ERROR–CODE delivers standard message texts for any
RETURN–CODE value and any SNA–defined sense code. These message texts can be
customized by the installation.
LARGE–MESSAGE–OPTION
The the LARGE–MESSAGE–OPTION provides the application with explicit control
over message boundaries. If the option is disabled, each item of data sent through the
SEND–DATA or SEND–AND–RECEIVE–DATA verb is a complete message (in SNA
terms, a complete chain). SNAX/HLS breaks your message into smaller units, called
RUs (request/response units), whose size is dictated by the session BIND. The only
way your program can be aware of this breaking up of your message is by noting that
the recovery tags returned at the end of a send procedure indicate that more than one
RU was sent. Similarly, the RECEIVE–DATA verb delivers an entire message, even if
the message was actually received in pieces.