Creating Channel Joins
This section describes the process of joining channels on Universal Messaging realms.
Channels can be joined programmatically or by using the Universal Messaging Enterprise Manager as described below.
The image below shows a realm that contains the cluster channels /eur/rates and /local/rates.
By selecting any of the cluster channels, then right-clicking, you can select the 'Join Channel' menu option. You will be presented with the join dialog for the selected cluster channel. This allows you to create a join from the channel to any other channel in any realm.
We can, for example, select /local/rates as the channel we wish to join to /eur/rates, as shown in the join dialog below, with a filter of CCY='EUR'. This will ensure that only those events with the event property CCY equal to 'EUR' occurring on /local/rates will be published to the /eur/rates channel.
The From Channel field represents the source channel and the To Store field represents the destination channel. The term store is a generic term for either a channel or a queue. By default, the From Channel field contains the name of the currently selected channel from which the join dialog was opened.
Clicking on the OK button will create the join.
By selecting the Joins tab panel for either the /local/rates channel or the /eur/rates channel, you will be presented with a panel that shows the join just created. The image below shows the display for the /eur/rates channel, which in this example is the destination channel. Selecting the newly created join will also show you any relevant filtering criteria that the join has been created with.
The table that shows the joins for a channel will indicate in the Type column whether the join is 'Outgoing' or 'Incoming'. An outgoing join indicates that the selected channel is the source for the join, whereas 'Incoming' indicates that the selected channel is the destination channel.
Deleting Joins
You can delete a join by selecting the join from the joins table, and clicking the Delete Join button. Joins can only be deleted in the Enterprise Manager from the source (outgoing) channel. If the destination channel (incoming) is selected, the Delete Join button will be disabled.
Inter-Cluster Joins
To add a join between channels on different clusters, first create an inter-cluster connection between the two clusters. Next, simply select a realm in the desired destination cluster as the join destination in the dropdown menu, as below:
As with non-inter-cluster joins, these joins can be specified with filters and hop-counts. If realms in the destination cluster go down, the join will failover and will continue to deliver events so long as the destination cluster is formed.
Inter-cluster joins can also be formed programmatically .
Allowing Purge
When a channel is purged, the events in the channel can also be purged. To activate this feature, mark the checkbox Allow Purge.
Archival Joins
An archival join is a specific type of join made between a channel and a queue, where events will not be checked for duplication. Events that are published to the source channel will appear in the destination queue. This may result in duplicate events in the queue if the queue has multiple sources.
The channel join dialog contains a checkbox labelled Archival. This checkbox is available when you create a join from a channel to a queue. When you mark the checkbox, the join is defined as an archival join.
If you use the optional Filter field, only the events matching the filter criteria will appear in the destination queue.