Ever look at a two people and ask, “Are they related?  They have to be siblings!”  One sure way to determine if two people are in fact siblings is to compare their DNA.
DNA and correlating transactions

The same scenario can also be applied to transaction monitoring.  Having observed two unique messages, you’d like to know if these messages are “related”.  In the transaction monitoring world, “related” means two or more messages that belong to the same transaction.  To determine this, we compare the “DNA” of the messages.

The DNA of a message consists of two parts:  its signature and its correlator.  The signature of a message is its unique identifier, separating it from all other messages in the universe.  Just like no two people have the same DNA, no two messages have the same signature.  Observing two messages with the same signature indicates that these are in fact the same message.

So, for two unique messages, which have different signatures, how can we determine if they are related?

That’s where the correlator comes in.  The correlator is an identification tag that uniquely identifies these two messages as belonging to the same transaction.  Examples of correlators are: Purchase Order Numbers, Trade IDs, etc.  As the purchase order is processed, different messages are sent to different departments (e.g. monetary information is sent to accounting, order quantities sent to shipping).

Being these are two different messages, they will have unique signatures.  But how do we know that they belong to the same transaction (purchase)?  By the one thing they have in common, the purchase order number.  So, by assigning the purchase order as the correlator for the two messages indicates they are unique “individuals”, but are in fact related.

You can perform DNA testing for transactions.  Why is that important? This capability enables us to automatically “follow” or trace transactions as they traverse computer systems and even tiers. This level of real-time visibility makes it possible to provide actionable diagnostics for applications, and thus rapidly resolve application performance problems in complex, composite applications.