Planning execution groups
With few exceptions, each message flow can run in one or more execution groups of a message broker. Each execution group is a separate process that runs in its own address space. Each instance of a message flow is a thread that runs within such a process. FTM SWIFT message flows are delivered as BAR files.
Consider
the following items when planning execution groups:
- The procedures for migrating from earlier levels and for implementing PTFs replace the entire contents of all execution groups that contain FTM SWIFT message flows. Therefore, do not include other message flows in such execution groups.
- Each execution group requires memory to control its own functioning. Therefore, distributing message flows to several execution groups requires more memory than deploying all message flows to one execution group.
- Segregating message flows by business function can increase overall reliability. For example, if you arrange for the SWIFTNet FIN and MSIF message flows to run in different execution groups, and one execution group terminates due to errors, the other remains unaffected.
- You might want to deploy certain message flows to several execution groups to increase total throughput.
- Message flows of FTM SWIFT and message flows of other products of the FTM family must be deployed in separate execution groups.
- The processing of the following message flows must observe a
strict sequence:
- DNF_L_ADM
- DNF_L_IMP
- Only one instance of the message flow DNQ_K_MON can run in one broker server at a time, but it can be deployed and run in several broker servers simultaneously.
- The commit count of the MSIF transfer service (DNF_O_FTx) must be set to 1.
- If MSIF is used to process FileAct requests it is recommended to customize 2 flow instances of an MSIF transfer service DNF_O_FTx. Set additionalinstances to 1 during customization. Figure 4 shows an example.
Because each execution group requires a minimum
amount of memory, you will not want to use too many. The optimum number
of execution groups depends on the capabilities of your system, and
on the balance you choose between the higher maintainability and throughput
provided by many execution groups, and the lower memory consumption
that results from using fewer execution groups. Using several execution groups:
- Lowers the maximum amount of memory required by each execution group
- Increases the performance of each message flow
- Makes it easier to manage the message flows, because related flows can be grouped together in the same execution group
- Increases the reliability of message flows that are deployed in more than one execution group, because if one terminates, the other execution groups remain unaffected
- Lets you use the workload manager to prioritize message flows
Table 1 shows
an example that uses several execution groups that group FTM SWIFT message flows according
to their business functions.
| Execution group | Purpose | BAR files | Message Flows |
|---|---|---|---|
| DNI_ADMIN | For the FTM SWIFT administration service | DNI_ACCADM.bar
DNI_AGATHER.bar DNI_A_EVENT.bar DNI_DEPLOY.bar DNI_MONITOR.bar DNI_N_EVENT.bar DNI_RCP.bar DNI_RSP.bar DNI_R_AUDIT.bar DNI_R_EVENT.bar DNI_R_FMT.bar DNI_R_MWH.bar DNI_SAMPLE.bar DNI_SYSADM.bar DNI_SYSOP.bar DNI_SECADM.bar DNI_TIMER.bar DNF_RM.bar DNF_RMA.bar DNP_F_FH.bar DNP_O_EVT.bar DNP_CMDDSP.bar |
DNI_ACCADM
DNI_AGATHER DNI_A_EVENT DNI_DEPLOY DNI_MONITOR DNI_N_EVENT DNI_RCP DNI_RSP DNI_R_AUDIT DNI_R_EVENT DNI_R_FMT DNI_R_MWH DNI_SAMPLE DNI_SYSADM DNI_SYSOP DNI_SECADM DNI_TIMER DNF_L_ADM DNF_L_IMP DNF_L_TR DNP_F_FH DNP_O_EVT DNP_CMDDSP |
| DNF_SAG | For the FTM SWIFT SAG configuration and operation services | DNF_BACKOUT.bar
DNF_R_EXP.bar DNF_SAGCFG.bar DNF_SAGOP.bar |
DNF_BACKOUT
DNF_R_EXP DNF_SAGCFG DNF_SAGCFGR DNF_SAGOP DNF_SAGOPRE |
| DNF_FIN | For the FTM SWIFT SIPN FIN and FMT FIN services | DNF_ILC_CMD.bar
DNF_ILC_FIN.bar DNF_ILS_ACK.bar DNF_ILS_FIN.bar DNF_PF_CMD.bar DNF_PF_IR.bar DNF_PF_IS.bar DNF_V_ADM.bar DNF_V_API.bar |
DNF_ILC_CMD
DNF_FSM_QRY DNF_FSM_STA DNF_ILC_FIN DNF_ILS_ACK DNF_ILS_FIN DNF_PF_CMD DNF_PF_IR DNF_PF_IS DNF_V_ADM DNF_V_REQ DNF_V_RSP DNF_V_API |
| DNQ_ER | For FTM SWIFT Message Management services other than the sample services | DNQ_K_TPL.bar
DNQ_K_MON.bar |
DNQ_K_TPL
DNQ_K_MON |
| DNQ_ER_SAMPLE | For the FTM SWIFT Message Management sample services that are used to illustrate message routing for the MER Facility | DNQ_K_FIN1.bar
DNQ_K_FIN2.bar DNQ_K_MX1.bar DNQ_K_UAR.bar |
DNQ_K_FIN1_1
DNQ_K_FIN1_2 DNQ_K_FIN1_3 DNQ_K_FIN1_4 DNQ_K_FIN1_5 DNQ_K_FIN1_IN DNQ_K_FIN1_OUT DNQ_K_FIN1_RCV DNQ_K_FIN2 DNQ_K_MX1 DNQ_K_MX1_IN DNQ_K_MX1_OUT DNQ_K_UA |
| DNQ_Routing_SAMPLE | For the FTM SWIFT Message Management sample services that are used to illustrate general message routing capability | DNQ_O_SFI.bar
DNQ_O_SFO.bar DNQ_O_SMX.bar |
DNQ_O_SFI
DNQ_O_SFO DNQ_O_SMX |
| DNQ_PRINT | For the FTM SWIFT Message Management services used for message printing | DNQ_P_CMD.bar
DNQ_P_DSP.bar DNQ_P_PRT.bar |
DNQ_P_CMD
DNQ_P_DSP DNQ_P_PRT |
| DNF_EFAS | For the FTM SWIFT MSIF services | DNF_O_CMD.bar
DNF_O_FT.bar DNF_O_FT1.bar
DNF_O_FT2.bar DNF_O_FT3.bar |
DNF_O_CMD
DNF_O_FT DNF_O_FT1
DNF_O_FT2 DNF_O_FT3 |