Example of a 3270 transaction running under the CICS-MQ bridge
This example highlights the differences in the data flows that take place when a CICS® 3270 transaction interacts with a 3270 terminal, and when it interacts with a CICS-MQ bridge application.
In this example, the transaction has an identifier of BAAA. It uses BMS maps, which allow the transaction to be adapted to run under the CICS-MQ bridge.
In the CICS environment, the transaction is started by entering its name at the CICS 3270 terminal and pressing Enter. Logic in the transaction causes it to issue an EXEC CICS SEND MAP command the first time that it is called in a pseudoconversation, and then to terminate by issuing the command EXEC CICS RETURN TRANSID(BAAA).
The user enters values into fields in the map that is displayed at the terminal, and then presses an AID key. Logic in the transaction the second time that it is called causes it to issue an EXEC CICS RECEIVE MAP command to receive the map. It updates certain fields in the map by changing values in its own application data structure, and then issues an EXEC CICS SEND MAP command to redisplay the map at the user's terminal.
Terminal user 3270 Transaction
BAAA <ENTER> -------------------> <Initial start>
<business logic>
<------------------- EC SEND MAP FROM(ads)
EC RETURN TRANSID(BAAA)
Update fields
<ENTER> -------------------> EC RECEIVE MAP INTO(ads)
<business logic>
<------------------- EC SEND MAP
EC RETURN TRANSID(BAAA)
Update fields
<ENTER> -------------------> EC RECEIVE MAP
When you run this transaction using the CICS-MQ bridge, the physical terminal is replaced by your non-CICS application. The logic of the 3270 transaction is unchanged, and the application data that it receives is the same, but the data that flows and the means by which it is transmitted are different. Instead of a 3270 data stream, an IBM® MQ message is used that contains an MQCIH structure, a vector structure, and, optionally, a representation of the application data structure.
Including these objects in the message depends on the direction in which the message flows (inbound to the bridge or outbound from the bridge), the sequence of the message in the exchange, and whether an application data structure descriptor has been requested by setting the appropriate value in a field in the MQCIH.
Exact emulation without optimization shows the flows that take place when the previous scheme is emulated exactly. You can optimize the flow by including more than one vector in inbound messages, as shown in Improved emulation with optimization.
MQCADSD_SEND + MQCADSD_RECV + MQCADSD_MSGFORMAT
As a result, application data structure descriptors in
long form are appended to both outbound and inbound application data
structures during the exchange of messages.
For clarity, the details of messaging are omitted here. For a description of the queuing model used by the CICS-MQ bridge, see IBM MQ product documentation.