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)
Note:
  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.