DFHBMSX (3270 data stream validation program)

The 3270 data stream validation program (DFHBMSX) is part of the BMS 3270 Intrusion Detection Service (IDS). It is called when a 3270 data stream validation error has been detected when issuing BMS RECEIVE MAP commands. It is a user replaceable module (URM).

Use this URM you need to configure BMS 3270 IDS to be specific about which applications or maps the service applies to. In general, this would only be necessary if an application made unusual use of the 3270 data stream and reported false hits. For most users, the BMS 3270 IDS feature will be sufficient; see BMS 3270 Intrusion Detection Service for details.

DFHBMSX has a commarea interface, which is defined in DFHBMSXn, where n is the usual language suffix, for example, D for Assembler.

This URM is called with the BMSX_FUNCTION set. BMSX_FUNCTION has the following two values:

BMSX_FUNCTION_INIT
This is set once at CICS® initialization to identify whether CICS should validate 3270 data streams.

The URM must set BMSX_ACTION to one of the following functions:

BMSX_ACTION_CHECK
Validation is enabled.
BMSX_ACTION_NOCHECK
No validation will be done. This is the default.
BMSX_FUNCTION_OVERWRITE
This is set when CICS detects that a protected field is updated incorrectly by a 3270 terminal emulator during a BMS RECEIVE MAP command. This function is called only when validation is enabled during CICS initialization.

The DFHBMSX URM must set BMSX_ACTION to one of the following functions:

BMSX_ACTION_IGNORE
Do nothing.
BMSX_ACTION_LOG
Issue a DFHTF0200 message. This is the default.
BMSX_ACTION_ABEND
Issue a DFHTF0200 message and abend the ABSX transaction.

DFHBMSX can also set BMSX_LOGACTION to tell CICS to issue either a single message for the first field detected on a map or a message for all fields detected:

BMSX_LOGACTION_FIRST
Only output a message for the first field that is detected.
BMSX_LOGACTION_ALL
Issue a message for all fields that are detected.

The URM is also passed details of the first 16 fields that have been detected.

If the URM is disabled, it is equivalent to BMSX_ACTION_NOCHECK on initialization and BMSX_ACTION_IGNORE.