SNAX/HLS Application Programming Manual
Procedure Specifications
Customization
7–20 104707 Tandem Computers Incorporated
The USEREXIT^SNAX^IN routine can be used as part of response-time statistics
collection. You can examine the message, verify that it is SNA message needed, and
record a value in the session-specific storage.
You might also use this routine to change the text of an SNA message. However, you
must be very careful in doing this, since a wrong modification can cause unpredictable
results in the protocol handling. The following points should be noted when
modifying inbound SNA messages:
Changing the length of messages is valid provided the length ends up in the range
9 through 30729.
Changing the bits in the RH almost always produces undesirable side effects—the
two half-sessions might end up with incompatible states.
Changing the request code of DFC or SC messages is almost always wrong.
If the message length is not within the legal values (9 and 30,729), a log message is
issued and SNAX/HLS abends.
The USEREXIT^SNAX^OUT
Routine
The customization SNAXHLS^USEREXIT^SNAX^OUT routine is invoked when
SNAX/HLS is about to send output (request or response) to the Tandem access
method, for example SNAX/XF (but only if thus enabled by your enabling routine).
This allows the customization routine to inspect and perhaps modify the output before
SNAX/HLS sends it to the Tandem SNA access method, (for example, SNAX/XF).
The routine is specified as follows:
PROC SNAXHLS^USEREXIT^SNAX^OUT(wsadr,
sessid,
snu,
vlen);
INT(32) wsadr;
INT sessid;
STRING .EXT snu;
INT .EXT vlen;
wsadr
is the 32-bit extended address of the global storage area as requested in the
enabling routine (SNAXHLS^USEREXIT^ENABLE). It is inappropriate to use this
address if no storage was allocated and would result in SNAX/HLS abending.
sessid
is the index to the session tables in SNAX/HLS. It does not correspond to the
session ID used on the verb interface, although it is derived from it. Note that
valid session values vary from 1 to the value specified by MAXLUS. If a session
has not been allocated, the value is zero. The value of MAXLUS is passed in the
SNAXHLS^USEREXIT^VERB^IN^BLOCK, on a call to the
SNAXHLS^USEREXIT^ENABLE^ routine.