Channel Joins
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.
When creating a join there is one compulsory parameter and two optional ones. The compulsory parameter is the destination channel. The optional parameters are the maximum join hops and a filter to be applied to the join.
Creating Channel Joins
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 );
For a sample application please see the section
C++ Client: Create Channel Join.
Deleting Channel Joins
Channel joins can also be deleted. Please see the sample application
C++ Client: Delete a Channel Join for more information.
Related Links
For a conceptional overview of channel joins, see the section
Data Routing using Channel Joins in the
Concepts guide.
For a description of how to set up and manage channel joins, see the section
Creating Channel Joins in the
Administration Guide. The description details the usage based on the Enterprise Manager, but the same general principles apply if you are using the API.