Schema Definition File for fault-bindings.xml

22-2 Oracle Fusion Middleware Developers Guide for Oracle SOA Suite All the groups are processed independently of each other and any error occurring in ones group does not affect the processing of other groups.

22.1.2 Identification of Groups and Sequence IDs

Groups and sequence IDs are identified through XPath expressions in the payload. You specify XPath expressions that point to the elements in the message payload on which grouping is done and on which sequencing is done. In the message payload shown in Figure 22–1 , CustomerId is the field on which to base instance sequencing and CustomerName is the field on which to base grouping. Figure 22–1 Message Payload

22.2 Resequencing Order

Oracle Mediator can resequence the incoming messages in a user-specified order. This implementation enables you to specify three types of resequencing orders: ■ Standard Resequencer ■ FIFO Resequencer ■ Best Effort Resequencer Note: Resequencing is supported only for Oracle Mediator components that have a request operation and a request-callback operation in the WSDL file. In other words, resequencing is not allowed by the user interface if the WSDL operation has a synchronous reply element. For more information about these operations, see Chapter 23, Understanding Message Exchange Patterns of an Oracle Mediator. Resequencing in Oracle Mediator 22-3

22.2.1 Standard Resequencer

The standard resequencer supports a standard resequencer pattern. The following sections describe the standard resequencer and how it processes messages.

22.2.1.1 Overview of the Standard Resequencer

The standard resequencer is useful for applications that use identifiers from a simple numeric identifier sequence in their messages. The standard resequencer receives a stream of messages that might not arrive in order; it then stores the out-of-sequence messages until a complete sequence based on the sequence IDs is received. The in-sequence messages are then processed asynchronously based on their sequence ID. It is important to note that the messages to outbound services of the standard resequencer Oracle Mediator service component are guaranteed to arrive in sequence. The standard resequencer does not modify the message contents; it just orders them.

22.2.1.2 Information Required for Standard Resequencing

When using the standard resequencer in Oracle Mediator, you must always specify a group XPath expression and a sequence ID XPath expression. These specify where the Oracle Mediator resequencer can find the group and the sequence ID in the messages. You must also supply the sequence numbering in terms of the start sequence ID and the sequence ID incremental delta. This numbering is used to form each group. In addition to the group, sequence ID, and increment properties, you can also specify a time period, in seconds, to wait for the expected messages.

22.2.1.3 Example of the Standard Resequencer

Table 22–2 shows how groups are formed differently for two different values of the incremental delta. Table 22–2 Groups Formed Differently for Two Different Values Start SequenceID Incremental Delta Group1 Group2 ... Groupn 1 1 1,2,3,4,5,... 1,2,3,4,5,... ... 1,2,3,4,5,...n 1 5 1,5,10,15,... 1,5,10,15,... ... 1,5,10,15,... Notes: ■ If the sequence numbering is different for various groups for example, if the groups do not have the same incremental delta or start sequence ID and the messages do not arrive in order, then you can use the best effort resequencer to rearrange the messages. ■ The Oracle Mediator standard resequencer holds back messages in the Oracle Mediator resequencer database until it can produce the right sequence for different groups. This means that if for a given group, the message with a particular sequence ID does not arrive within the timeout period 1 , the consecutive messages for that group are held back forever. In such a case, you must manually unlock the group through Oracle Enterprise Manager Fusion Middleware Control and go to the next available message, skipping the pending message. 1 The timeout period is the time period in seconds to wait for an expected message. 22-4 Oracle Fusion Middleware Developers Guide for Oracle SOA Suite

22.2.2 FIFO Resequencer

The FIFO resequencer supports a standard first in, first out FIFO pattern. The following sections describe the FIFO resequencer and how it processes messages.

22.2.2.1 Overview of the FIFO Resequencer

The FIFO resequencer is useful for applications that need sequencing based on the time the messages arrive to the Oracle Mediator. The FIFO resequencer receives a stream of messages that are in order and processes them in sequence for each group based on the arrival time of the messages. It is important to note that the messages to outbound services of the Oracle Mediator acting as a FIFO resequencer are guaranteed to arrive in order based on arrival time. Therefore, the messages are delivered in the order they were stored in the resequencer data store.

22.2.2.2 Information Required for FIFO Resequencing

When using the FIFO resequencer, you must always specify a group XPath expression. However, you do not need to specify a sequence ID because the messages are processed according to the time of arrival to the Oracle Mediator service component that is configured for FIFO resequencing. The group XPath expression specifies where the FIFO resequencer should find the group information in the message to group the messages. No further configuration is needed for a FIFO pattern.

22.2.2.3 Example of the FIFO Resequencer

Table 22–3 illustrates the behavior of the FIFO resequencer where msgXY,Z indicates that the message arrives as message number X to the Oracle Mediator service component and the message contains sequenceID Y and group Z. As shown in Table 22–3 , the messages are sequenced based on their time of arrival and the sequenceID is not used for sequencing. Table 22–3 FIFO Resequencer Behavior Incoming Messages Sequenced Messages msg032,c msg061,c msg075,a msg103,a msg103,c msg027,a msg059,a msg124,c msg124,c,msg103,c,msg061,c,msg032,c msg059,a, msg027,a, msg103,a, msg075,a