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:
- 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.
- The same method can be used to initialize a TCTUA, large amounts of start data , or anything other parameters relating to the transaction environment.