Joining a channel to another channel or queue allows you to set up content routing such that events published to the source channel will be passed on to the destination channel/queue automatically. Joins also support the use of filters thus enabling dynamic content routing.
Please note that while channels can be joined to both resources, queues cannot be used as the source of a join.
Channels can be joined using the Universal Messaging Enterprise Manager GUI or programmatically.
In joining two Universal Messaging channels there is one compulsory option and two optional ones. The compulsory option is the destination channel. The optional parameters are the maximum join hops and a message selector to be applied to the join.
Multiple Path Delivery
Universal Messaging users can define multiple paths over different network protocols between the same places in Universal Messaging. Universal Messaging guarantees that the data always gets delivered once and once only.
Channel joins can be created using the Make Channel Join sample application which is provided in the bin directory of the Universal Messaging installation. For further information on using this example please see the make channel join example page.
Universal Messaging joins are created as follows:
//Obtain a reference to the source channel
nChannel *mySrcChannel = mySession->findChannel( nca );
//Obtain a reference to the destination channel
nChannel *myDstChannel = mySession->findChannel( dest );
//Obtain a reference to the destination channel's realm
nRealm *realm = myDstChannel->getChannelAttributes()->getRealm();
//create the join
mySrcChannel->joinChannel( myDstChannel, true, jhc, SELECTOR );
Channel joins can also be deleted. Please see the delete channel join example for more information.