Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.

A.8. Resequencer


Overview

The resequencer pattern, shown in Figure A.5, “Resequencer Pattern”, enables you to resequence messages according to the sequence number stored in an NMR property. The ServiceMix EIP resequencer pattern maps to the Apache Camel resequencer configured with the stream resequencing algorithm.

Figure A.5. Resequencer Pattern

Sequence number property

The sequence of messages emitted from the resequencer is determined by the value of the sequence number property: messages with a low sequence number are emitted first and messages with a higher number are emitted later. By default, the sequence number is read from the org.apache.servicemix.eip.sequence.number property in ServiceMix, but you can customize the name of this property using the eip:default-comparator element in ServiceMix.
The equivalent concept in Apache Camel is a sequencing expression, which can be any message-dependent expression. When migrating from ServiceMix EIP, you normally define an expression that extracts the sequence number from a header (a Apache Camel header is equivalent to an NMR message property). For example, to extract a sequence number from a seqnum header, you can use the simple expression, header.seqnum.

Example ServiceMix EIP route

Example A.13, “ServiceMix EIP Resequncer” shows how to define a resequencer using the ServiceMix EIP component.

Example A.13. ServiceMix EIP Resequncer

<eip:resequencer
  service="sample:Resequencer"
  endpoint="ResequencerEndpoint"
  comparator="#comparator"
  capacity="100"
  timeout="2000">
  <eip:target>
    <eip:exchange-target service="sample:SampleTarget" />
  </eip:target>
</eip:resequencer>

<!-- Configure default comparator with custom sequence number property -->
<eip:default-comparator xml:id="comparator" 
                        sequenceNumberKey="seqnum"/>
Copy to Clipboard Toggle word wrap

Equivalent Apache Camel XML route

Example A.14, “Apache Camel Resequencer Using XML” shows how to define an equivalent route using Apache Camel XML configuration.

Example A.14. Apache Camel Resequencer Using XML

<route>
  <from uri="jbi:endpoint:sample:Resequencer:ResequencerEndpoint"/>
  <resequencer>
    <simple>header.seqnum</simple>
    <to uri="jbi:service:sample:SampleTarget" />
    <stream-config capacity="100" timeout="2000"/>
  </resequencer>
</route>
Copy to Clipboard Toggle word wrap

Equivalent Apache Camel Java DSL route

Example A.15, “Apache Camel Resequencer Using Java DSL” shows how to define an equivalent route using the Apache Camel Java DSL.

Example A.15. Apache Camel Resequencer Using Java DSL

from("jbi:endpoint:sample:Resequencer:ResequencerEndpoint").
    resequencer(header("seqnum")).
    stream(new StreamResequencerConfig(100, 2000L)).
    to("jbi:service:sample:SampleTarget");
Copy to Clipboard Toggle word wrap
Nach oben
Red Hat logoGithubredditYoutubeTwitter

Lernen

Testen, kaufen und verkaufen

Communitys

Über Red Hat Dokumentation

Wir helfen Red Hat Benutzern, mit unseren Produkten und Diensten innovativ zu sein und ihre Ziele zu erreichen – mit Inhalten, denen sie vertrauen können. Entdecken Sie unsere neuesten Updates.

Mehr Inklusion in Open Source

Red Hat hat sich verpflichtet, problematische Sprache in unserem Code, unserer Dokumentation und unseren Web-Eigenschaften zu ersetzen. Weitere Einzelheiten finden Sie in Red Hat Blog.

Über Red Hat

Wir liefern gehärtete Lösungen, die es Unternehmen leichter machen, plattform- und umgebungsübergreifend zu arbeiten, vom zentralen Rechenzentrum bis zum Netzwerkrand.

Theme

© 2025 Red Hat