Aggregation

Because the CommonBaseEvent carries the priority value that is used to populate the MQMD priority field, the way that events are aggregated by the event API and processed by the event processing flow was modified. This change was needed because when FTM aggregates events of the same type into one event, it has only one priority value. The structure of currently aggregated events is of the following form:
E_MpInTxnMapped
          __NULL__:CHARACTER:BATCH
           __NULL__:CHARACTER:TXN_CLASS
            _PAYMENT_ORIGINATION:CHARACTER:TXN_TYPE
             X_TRANSACTION_TRANSMISSION
              CtxNames
               CHARACTER:TRANSACTION
               CHARACTER:TRANSMISSION
              contextValue:CHARACTER:2384001
              contextValue:CHARACTER:2384000
          severity:CHARACTER:10
          priority:CHARACTER:30
          sourceComponent:CHARACTER:MTToISFMapper
In this situation, all the aggregated events share the priority, which is 30. But sharing the priority might not be correct because some E_MpInTxnMapped events might have a different priority than others in the aggregation. To avoid this issue, the priority is used as the top branch in the aggregation algorithm instead of the name of the event. As a result, events of the same type and same priority are aggregated together.
After the changes were made to aggregation, the new structure of the aggregated events is shown in the following example.
E_MpInTxnMapped
          3 (Priority)
           __NULL__:CHARACTER:BATCH
            __NULL__:CHARACTER:TXN_CLASS
             _PAYMENT_ORIGINATION:CHARACTER:TXN_TYPE
              X_TRANSACTION_TRANSMISSION
               CtxNames
                CHARACTER:TRANSACTION
                CHARACTER:TRANSMISSION
               contextValue:CHARACTER:2384001
               contextValue:CHARACTER:2384000
          severity:CHARACTER:10
          priority:CHARACTER:30
          sourceComponent:CHARACTER:MTToISFMapper
Now, all of the aggregated events under the 3 in this structure, are put onto the event queue with an MQMD priority of 3.
Note: The priority value under which the events are aggregated is the IBM® MQ value instead of the CommonBaseEvent priority value. The IBM MQ priority value is used so that aggregation can occur optimally, based on how the events render to the IBM MQ queue. On the output of the event processing flow, the CommonBaseEvent value is mapped onto the MQMD range. But, aggregating under the MQMD priority provides a better chance of aggregating more events together due to its smaller range, which helps to improve performance and efficiency within later units of work.