Link3270 programming considerations

The user transaction is unchanged, but because of the way it now executes in the bridge environment, there are some restrictions on what it can do, and some limitations on how it can use the bridge facility, because it is not a real terminal.

You can use the Load Module Scanner utility (described in the CICS® Operations and Utilities Guide), using the supplied table DFHEIDBR, to identify any CICS commands in your program that are not supported by the bridge.

Note:
The bridge only supports valid documented CICS API interfaces. If either the application or vendor programs use undocumented interfaces, the results will be unpredictable.
Abend information
The bridge facility name is not used as the TERMID in any diagnostic information produced as the result of an abend, except in a transaction dump.
ASSIGN
If the user transaction issues ASSIGN NETNAME, the value returned is the NETNAME if there is one, or else the TERMID. The name is not visible outside the user transaction, and may contain '}' characters.

You can only use ASSIGN to request information about BMS attributes such as MAPCOLUMN, MAPHEIGHT, MAPLINE, and MAPWIDTH if an ADS descriptor is present in the mapset. See The ADS descriptor (ADSD).

BMS requests
The Link3270 bridge supports the following BMS commands. If other BMS functions that require a principal facility are used, they cause the user transaction to abend ABR3.
RECEIVE commands
  • RECEIVE MAP TERMINAL
  • RECEIVE MAP FROM
  • RECEIVE MAP MAPPINGDEV
Note:
TERMINAL is implied if neither TERMINAL nor FROM is specified.
SEND commands
  • SEND MAP TERMINAL
  • SEND TEXT TERMINAL
  • SEND TEXT NOEDIT TERMINAL
  • SEND TEXT MAPPED TERMINAL
  • SEND CONTROL TERMINAL
  • SEND MAP SET
  • SEND TEXT SET
  • SEND TEXT NOEDIT SET
  • SEND TEXT MAPPED SET
Notes:
  1. TERMINAL is implied if none of TERMINAL, SET, or PAGING is specified.
Routing
Routing to real terminals from a transaction running on a bridge facility is supported, but it is not possible to route to a bridge facility, nor to specify a bridge facility as ERRTERM on ROUTE. If ERRTERM without a name is specified on a ROUTE request issued in a bridge environment, the INVERRTERM condition is raised.

PAGING is supported only under routing.

Partitions
Partition related commands and options are supported, but are treated in the same way as they would be for a real terminal that does not support partitions.
SEND PARTNSET
Supported, but the bridge exit is not invoked.
RECEIVE PARTN
Supported; the bridge exit is invoked with bridge exit area command fields set up for a terminal control RECEIVE.
INPARTN
Accepted but ignored; not passed to the bridge exit.
OUTPARTN
Accepted but ignored; not passed to the bridge exit.
ACTPARTN
Accepted but ignored; not passed to the bridge exit.
CICS-supplied transactions
CEDF, CEDX, CSFE, and CSGM cannot run as user transactions.
DB2® authorization check
The RCT allows AUTHTYPE=TERMID or OPID which means that security checking is done against the corresponding name. This fails in a bridge environment, and AUTHTYPE=USERID must be used instead. This is the preferred method in all environments.
External security customization
TERMID/OPID/TCTUA information is not passed in the DFHXSID parameter list.
Global User Exits
The following global user exits (GLUEs) are not driven because the bridge facility is not a real terminal.
XBMIN
to intercept a RECEIVE MAP request.
XBMOUT
to intercept a SEND MAP request.
XTCATT
before a task attach.
XZCATT
before a task attach (VTAM®).
XZCIN
after an input event (VTAM).
XZCOUT
before an output event (VTAM).
XZCOUT1
before a message is broken into RUs (VTAM).

The XALTENF and XICTENF exits can be driven if a request is made for a bridge facility. The ‘terminal-not-found’ condition is raised because the bridge facility is not a real terminal.

The standard user exit parameter list field UEPTERM that points to the TERMID are not set for exits invoked under a bridge task.

ISSUE PASS
ISSUE PASS is not supported and results in an INVREQ.
ISSUE PRINT
ISSUE PRINT is not supported and results in a no-op. A NORMAL condition is returned.
Monitoring
A 3270 bridge transaction identifier is present in monitoring records.
Remote DLI requests
No security check of the PSB against the terminal is done for function-shipped DLI requests.
Security Processing
When a bridge facility is created, it is signed on as a preset USERID terminal, with the client's USERID. As with other preset terminals, the SIGNON and SIGNOFF commands are not permitted, and INVREQ is raised.

The bridge facility is signed off when it is discarded. It remains signed on in session mode until a specific delete facility request is sent, or the keeptime interval expires.

START
The user transaction can issue EXEC CICS START requests for its own bridge facility. This allows existing menu-driven and pseudo-conversational applications that use this interface to work in a bridge environment. See Pseudoconversational transactions for a description of START TERMID where TERMID specifies the bridge facility.

The time delay options, (INTERVAL, TIME, AFTER, AT, HOURS, MINUTES, SECONDS) are not normally used in the bridge environment, but the bridge mechanism uses them to put the STARTs for a particular bridge facility in time order, but the exact delays requested are not implemented. TIME and AT specifications are ignored completely.

Other options on the START command are partly supported :

TERMID
You can specify the name of your own bridge facility for this transaction, or for any real terminal.
USERID
USERID and TERMID are mutually exclusive. The CICS translator rejects START requests with both USERID and TERMID specified.
TRANSID
If the TRANSID cannot be defined as REMOTE, the TERMID will not be found if the request is shipped to a remote system.
SYSID
Routing of START requests is not possible in a bridge environment. This option is not supported, unless the value of the SYSID is the local SYSID. If you specify any other value, the request will be shipped and the TERMID will not be found on the remote system.
NOCHECK
This option only applies to shipped start requests and is ignored.
PROTECT
If you specify the PROTECT option on a START request for a bridge facility, and the starting task abends before taking a syncpoint, the START request is discarded. PROTECT normally delays the starting of the new task until a SYNCPOINT has occurred. This happens automatically for a task issuing a START for its own facility because the START cannot take effect until the starting task has terminated and freed up its bridge facility.
STARTed transactions
Some menu applications use START to initiate subsequent transactions.

You can specify BRIHSC-START in the BRIH-STARTCODE field of a single transaction mode request message, or in the first transaction of a session mode pseudoconversation, to return the correct response to ASSIGN STARTCODE and INQUIRE TASK STARTCODE commands issued by the user transaction.

User transactions that are initiated by START may issue one or more RETRIEVEs to obtain data passed on the START. When the bridge has passed all the data provided in the Link3270 request message, ENDDATA is returned to the user transaction.

Statistics
You cannot use EXEC CICS COLLECT STATISTICS TERMINAL(xxxx) where xxxx is a bridge facility.
Storage violation counts
No storage violation counts will be kept in a bridge facility.
TCTUA
The TCTUA is available to the user transaction using the EXEC CICS ADDRESS command. You can modify the contents of the TCTUA using the XFAINTU global user exit. See Initializing the TCTUA. Note that the TCTUA is NOT available to any programs in other CICS regions that are linked to by the user transaction using DPL.
Transaction restart
RESTART(NO) is forced for user transactions because CICS has no way of restoring the initial input message.
Transaction Routing
Transaction Routing is not directly supported, see Transaction Routing considerations for a technique you can use.. The Link3270 bridge supports work load balancing with an affinity.
TWA
The TWA is available to the user transaction.

Related concepts
The Link3270 bridge mechanism
The bridge facility
Related tasks
Using the Link3270 bridge
Writing the Link3270 client
Related reference
Link3270 message formats
[[ Contents Previous Page | Next Page Index ]]