"Visited by" Bit in CorrelID in a Message Broker Network"
Original Publication Date: 1999-Dec-01
Included in the Prior Art Database: 2003-Jun-19
Existing multibroker domains prevent message loops by defining a broker topology without loops. In a looping broker topology, 'active' loop suppression is required. This cannot rely on hop counts which prevent infinite loops, as to prevent sending duplicate copies of a message to a given subscriber runtime revisits of a note by a message must be prevented. This proposal presents a variant of the standard loop suppression technique of carrying an accumulated 'visited' list with each message. The benefit is that it is not necessary to rebuild the message with the extra visited information. Visited information is accumulated in the correlation identifier (correlID) of the message. When a broker is about to pass a message to another broker it checks that other broker's bit in the correlID to see if is already set. If so, it does not send the message. When it does pass a message to another broker, it sets its own bit in the correllD before sending. A unique number is given to each broker in the system. When that broker has been visited, the appropriate bit is set in the correlID. Thus interbroker messages use the correlID for holding visited information. CorrelID can still be used to permit subscribers to share a single queue as long as broker/broker queues are kept distinct from client delivery queues. This mechanism cannot be combined with an application that passes correlID from publisher to subscribers. Publishing applications must publish with an empty correlID.