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.

The user can then update fields in the redisplayed map, and start the RECEIVE MAP - SEND MAP cycle again. The logic can be illustrated like this (where EC represent EXEC CICS ):
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.

In these examples, assume that MQCIH.ADSDescriptor is set to:
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.