Manage groups with MQSeries or JMS

To manage groups, you must set further parameters in addition to those required for the basic implementation.

The message context must follow the following rules:

   

1

Each message in the group must have a unique MsgId. This allows it to be re-read if it is rejected

2

All message that carry Input-Events from the same group must share the same CorrelId

3

If a message CorrelId is blank, the Input-Events that it carries do not belong to any group

Each message that is to be sent must obey the following rules:

   

1

All segments of one Input-Event must be carried in a single message

2

The maximum length of a message depends on the version of MQSeries or JMS broker you are using
It is set by MQSeries at 100 MB for MQSeries V7

3

Several (complete) Input-Events, belonging to the same group, can be transported by a single message

4 A group of Input-Events is carried by 1 to N messages

The data carried by the Input-Event message must be formatted as shown in the following table:

Field Length Value

Sequence number

12 characters

Sequence number giving the position of the message in the group

End-of-group flag

1 character

Set to F for the last message in the group

Filler

51 characters

 

Number of segments

7 characters

Number of segments in the message (N)

Length of segment 1

4 characters

 

Segment 1

1 to 4000 characters

 

 

 

Length of segment N

4 characters

 

Segment N

1 to 4000 characters

 

Note   The sequence number, end-of-group flag, number of segments and length of each segment are expressed as long data types (PIC X or CHAR).

Define a complete group

A group of Input-Events is complete when:

  • The system finishes reading the last message in the group (end-of-group flag = F)
  • The number of messages processed with the same CorrelId equals the sequence number in the final message of the group

Define an incomplete group

A group is incomplete if one of the above conditions is not fulfilled.

Each time the system receives an incomplete group, it checks the incomplete groups queue. If it finds the remainder of the group in this queue, it processes the entire group. Otherwise, the system sends messages to this queue until it receives the remaining messages.

Keyword Description/Values
>Configuration< Section

MQS (TimeOut)

Maximum time, in seconds, allowed between receiving two messages in the same group
If this threshold is exceeded, the system declares the group incomplete

MQS (FILE_ GROUP_INCOMPLETE)

Name of the queue to which the system writes those messages that carry incomplete Input-Event groups

Reproduce a group

To reproduce a group, you write the CorrelId of the processed Input-Event group back into the contexts of the output messages.

Rule Engine automatically reproduces Input-Event groups for queues that contain:

  • Input-Events placed in anomaly during transformation
  • Rejected Events
  • Modified Input-Events
  • Redirected Input-Events

Reproducing groups is optional for queues of Output-Events generated by the transformation of an Input-Event group. The system reproduces groups for each queue declared in script.mqs or script.jms.

Parameter settings in script.mqs or script.jms for a queue of Output-Events

Queue= MQS , "Manager=Qmngr;Queue=queuename; Reproduction_group=Yes;Blocking=Yes;"

Rules to follow:

Rule Meaning

1

Reproduction_group: Writes the CorrelId value of the group of Input-Events processed back to the context of the output queue

Reproduction_group is an optional parameter. If you do not specify it, Rule Engine does not activate group reproduction. 

  • Yes: Enables the reproduction of groups
  • No: The reproduction of groups is not enabled

Related Links