Saturday 1 December 2012

Correlation in BPM 11g

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.

1 comment:

  1. 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