Transaction Routing considerations

Although the 3270 bridge does not directly support transaction routing, you can migrate applications using the following technique.

Add a wrapper program in the router region to drive initialization and termination routines as shown in the following table:

Client Router wrapper Bridged tran
Link to wrapper1
wrapper1
ADDRESS COMMAREA(msg)
brih-transaction =
briht-allocate-facility
LINK PROG(DFHL3270)
  COMMAREA(alloc-msg)

brih-transaction = appl1
LINK PROG(DFHL3270)
  COMMAREA(msg)

brih-transaction = term
LINK PROG(DFHL3270)
  COMMAREA(dummy-msg)

brih transaction =
briht-delete-facility
LINK PROG(DFHL3270)
  COMMAREA(del-msg)

READQ TS
INTO(appl-commarea)

RETURN
COMMAREA(msg+appl-commarea)
app1
..BMS or 3270 commands..
RETURN
  COMMAREA(appl-commarea)


term
ADDRESS
  COMMAREA(appl-commarea)
WRITEQ TS
  FROM(appl-commarea)
Client Router wrapper Bridged tran
Link to wrapper2
wrapper2
ADDRESS
COMMAREA(msg+appl-commarea)

WRITEQ TS
  FROM(appl-commarea)


brih-transaction =
briht-allocate-facility
LINK PROG(DFHL3270)
COMMAREA(alloc-msg)

brih-transaction=init
LINK PROG(DFHL3270)
  COMMAREA(dummy-msg)

brih-transaction=appl2
LINK PROG(DFHL3270)
  COMMAREA(msg)

brih-transaction =
briht-delete-facility
LINK PROG(DFHL3270)
  COMMAREA(del-msg)

RETURN
  COMMAREA(msg)
init
READQ TS INTO(appl-commarea)
RETURN
  COMMAREA(appl-commarea)


appl2
ADDRESS
  COMMAREA(appl-commarea)
..BMS or 3270 commands..
RETURN
  COMMAREA(appl-commarea)

Notes:
  1. This solution could be varied according to the commarea size. If the msg+appl-commarea is greater than 32K, then rather than returning the appl-commarea to the listener, the init and term transansactions could write the commarea to a shared TS queue.
  2. The same method can be used to initialize a TCTUA, large amounts of start data , or anything other parameters relating to the transaction environment.

Allocating a bridge facility name for a pseudoconversation when using the Link3270 bridge for transaction routing

In this example the application is controlled by a bridge client on the host as described in Select Link3270 client scenarios.

Before running your client program:

  1. Set the AIBRIDGE system initialization parameter to "yes" in the router region. This causes CICS® to call the autoinstall user-replaceable program when a terminal ID has been allocated.
  2. Ensure that your autoinstall user-replaceable program contains code to change the last character of the terminal ID in SELECTED-BRFAC-TERMID if it is set to is set to "}". This character must be changed to a character that is unique to the system and can be an alphanumeric character or one of the following special characters: ¢@#./_%&$?!:|"=¬,;<>

    If you are using NETNAME change it by copying SELECTED-BRFAC-TERMID to SELECTED-BRFAC-NETNAME.

Your client program should contain the following steps:

  1. Call the Link3270 bridge with an allocate-facility request. This bridge facility is referred to as the primary bridge facility in this example.
  2. Set BRIH-FACILITYKEEPTIME to the time the application will take to run. If in doubt set it to the maximum value allowed. The maximum value is given in the description of BRMAXKEEPTIME in Defining Link3270 SIT parameters.

    CICS calls the autoinstall user-replaceable program when the terminal ID for the bridge facility has been allocated.

  3. When the transaction completes you may want to route to a different AOR:
    1. Keep the terminal ID and NETNAME which are returned from the Link3270 call in BRIH-TERMINAL and BRIH-NETNAME and do not delete the primary bridge facility.
    2. Allocate a new bridge facility using a Link3270 allocate-facility request. Before issuing this request, set BRIH-TERMINAL to the value of the primary bridge facility. Set BRIH-NETNAME also if you need NETNAME to be the same throughout. The facility allocated by this request is referred to as the secondary bridge facility in this example.
    3. When the autoinstall user-replaceable program is called for the new facility, SELECTED-BRFAC-TERMID is set to the value in BRIH-TERMINAL. Note that this name does not have "}" as the last character and the program will accept it.
    4. When changing to a third AOR, call Link3270 with a delete-facility request for the secondary bridge facility.
    5. Repeat steps 3a to 3d each time the target AOR changes.
  4. When all transaction routing has finished, call Link3270 with a delete-facility request for the primary bridge facility.

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 ]]