Correlation is the mechanism that is used to associate a message with the
conversation that it belongs to. There are two main classes of correlation:
• Automatic correlation refers to mechanisms where the correlation is handled
automatically. BPM uses mechanisms like WS-Addressing and JMS Message
IDs to achieve automatic correlation.
• Message-based correlation refers to the mechanism the process developer
needs to define some keys, which can be extracted from the message in order
to determine which conversation a message belongs to.
There are some occasions when message-based correlation is necessary because
automatic correlation is not available, for example:
• When the other participant does not support WS-addressing, or
• When a participant joins the conversation part way through but has only
the data values, but no other information about the conversation
If you do not specify any settings for message-based correlation, the runtime engine
will attempt to use automatic correlation. If it is not possible to do so, then you
will get a correlation fault. The engine checks to see if the called process or service
supports WS-addressing, in which case it will insert a WS-addressing header into the
call. It will then wait for a matching reply. Similarly, if JMS is being used to transport
the message, it will look for a reply message with the JMS correlation ID that matches
the JMS message ID of the message it sent.
Correlation is especially important inside a loop construct, as there may be multiple
threads/receives waiting at once, and the engine needs a way to know which reply
belongs with which receive.
conversation that it belongs to. There are two main classes of correlation:
• Automatic correlation refers to mechanisms where the correlation is handled
automatically. BPM uses mechanisms like WS-Addressing and JMS Message
IDs to achieve automatic correlation.
• Message-based correlation refers to the mechanism the process developer
needs to define some keys, which can be extracted from the message in order
to determine which conversation a message belongs to.
There are some occasions when message-based correlation is necessary because
automatic correlation is not available, for example:
• When the other participant does not support WS-addressing, or
• When a participant joins the conversation part way through but has only
the data values, but no other information about the conversation
If you do not specify any settings for message-based correlation, the runtime engine
will attempt to use automatic correlation. If it is not possible to do so, then you
will get a correlation fault. The engine checks to see if the called process or service
supports WS-addressing, in which case it will insert a WS-addressing header into the
call. It will then wait for a matching reply. Similarly, if JMS is being used to transport
the message, it will look for a reply message with the JMS correlation ID that matches
the JMS message ID of the message it sent.
Correlation is especially important inside a loop construct, as there may be multiple
threads/receives waiting at once, and the engine needs a way to know which reply
belongs with which receive.
Hi This is helpful post. It would be good if you have any documentation for Oracle SOA JMS adapter configuration with Message ID Oracle SOA 12c online training
ReplyDelete