Sequencer is used to Generate a sequence to the messages and send them to output port based on Notification Interval, Resequence Interval and Sequence type. In a Multithreaded environment, the messages are not guaranteed to reach the output in the order of their arrival. Sequencer can be used to guarantee the output reaching in the order of their arrival to the output port.
The generation of the sequence could be Continuous and NON-continuous as well.
Configuration
Sequencer Mode: It has two options—Generate and Resequence. The first option is used to generate a sequence starting from the given Initial Sequence Number. Resequence sorts all the messages as it is stored in the sorted map. Hence they appear in the order of their arrival. This is most useful in Multithreaded environment.
Sequence Holder Property: The property by which the messages are compared.
Notification Interval: Duration for which the message is retained in the component.
Resequence Interval: Interval after which resequencing is attempted.
Table Name Prefix: Prefix name of the table used for storing sequence number or message to be resequenced. This is used as a parameter to ensure that different processes uses different table. This parameter is appended to the Table Name before creation of table. If two different processes use the same Table Name Prefix indepently, then both the sequences of different processes gets stored in same table. Hence it is advisable to check if there is already a table existing with the same Table Name Prefix
Intial Sequence Number: Number from which sequence starts. By default, it is set to 1.
Sequence Type:
- Continuous: Select this to have two consecutive sequence numbers differ by 1.
- Non-Continuous: Sequence numbers are not generated continuously.
Sequence Numbering on Component Restart: Previous run count will be considered if 'Continue from previous run' option is chosen, else the run count is started from initial Sequence Number set in the CPS.
Functional Demonstration
Scenario 1
Configure component as shown in Figure 1. Using Feeder send input messages and it can be observed that received messages have different Sequence_id generated continuously.
Sample Output
Useful Tips
- Notification Interval, Resequence Interval, and Sequence Type properties appear only on selection of 'Rsequence' option as Sequencer Mode.
- Sequence Holder Property and Table Name Prefix values cannot be left empty.