Contents
Placement in NetarchiveSuite software
Every channel is named after the set of applications instances that are expected to receive messages sent to it. All channel names are constructed privately in the dk.netarkivet.common.distribute.ChannelID
class. To get a channel, you must use one of the public methods in dk.netarkivet.common.distribute.Channels
.
Channel Behavior
There are to types of channels used in the JMS protocol:
- Queue where only one listener takes a message from the channel. For example a queue where a request for doing a harvest is only received by one harvester.
- Topic where all listeners takes a copy of the message. For example a batch job which has to be executed by all bitarchive applications.
In NetarchiveSuite we use a naming convention that topic channel names include the string "_ALL_".
Naming Conventions
The structure of channel names is as follows:
<Environment Name>_<ReplicaID>_[<Channel Specifier Prefix>_]<Channel Specifier>[_<Machine>][_<Application Instance>][_TOPIC]
- Environment Name value must be the same for all channels on all JVMs belonging to a single NetarchiveSuite installation. It identifies the environment for the queue, e.g.: "DEV", "TEST", "RELEASETEST", "CLOVER", "PROD" or initials of developer running personal environment for e.g. sanity tests. It is read from the setting
settings.common.environmentName
of the NetarchiveSuite installation. ReplicaID Name of the replica (ie the "location" in a distributed system), or COMMON if channel shared by all replicas.
- Channel Specifier Prefix if present is one of the following:
- THE - communicate with singleton in the system.
- THIS - communicate with one uniquely identified instance of a number of distributed listeners.
- ANY - has all instances listening to the same queue.
- ALL - is used for topics only, i.e. topics are sent to all listeners on the channel
- Channel Specifier simply expresses what the channel is used for. By convention this (usually) describes what kind of application should listen on this channel.
Here is a complete list of the channels in an actual realistic distributed NAS system (IP addresses have been anonymised for security reasons).
Channel Name | Function |
---|---|
SystemTest_COMMON_HARVESTER_STATUS_TOPIC | |
SystemTest_COMMON_HARVESTMON | |
SystemTest_COMMON_HCHAN_VAL_REQ | |
SystemTest_COMMON_HCHAN_VAL_RESP | |
SystemTest_COMMON_INDEX_SERVER | |
SystemTest_COMMON_JOB_PARTIAL_HIGHPRIORITY | |
SystemTest_COMMON_JOB_SNAPSHOT_LOWPRIORITY | |
SystemTest_COMMON_MONITOR_TOPIC | |
SystemTest_COMMON_THE_REPOS | |
SystemTest_COMMON_THE_SCHED | |
SystemTest_COMMON_THIS_INDEX_CLIENT_130_225_27_140_HCS_SBHIGH_H3 | |
SystemTest_COMMON_THIS_INDEX_CLIENT_130_226_228_11_HCS_KBHIGH_H3 | |
SystemTest_COMMON_THIS_REPOS_CLIENT_130_225_27_140_HCS_SBHIGH_H3 | |
SystemTest_COMMON_THIS_REPOS_CLIENT_130_226_228_10_WI | |
SystemTest_COMMON_THIS_REPOS_CLIENT_130_226_228_11_HCS_KBHIGH_H3 | |
SystemTest_COMMON_THIS_REPOS_CLIENT_130_226_228_11_HCS_KBLOW002_H3 | |
SystemTest_COMMON_THIS_REPOS_CLIENT_130_226_228_5_IS | |
SystemTest_COMMON_THIS_REPOS_CLIENT_130_226_228_5_VP | |
SystemTest_COMMON_THIS_REPOS_CLIENT_130_226_228_9_HCS_KBLOW001_H3 | |
SystemTest_CS_THE_CR | |
SystemTest_KB_ALL_BA_TOPIC | |
SystemTest_KB_ANY_BA | |
SystemTest_KB_THE_BAMON | |
SystemTest_SB_ALL_BA_TOPIC | |
SystemTest_SB_ANY_BA | |
SystemTest_SB_THE_BAMON |
Channel Prefix | Example | Description |
---|---|---|
THE_SCHED | QUICKSTART_COMMON_THE_SCHED | Queue on which HarvestControllers reply with status messages to the HarvestScheduler. |
JOB_PARTIAL_FOCUSED | QUICKSTART_COMMON_JOB_PARTIAL_FOCUSED | Queue used to send jobs to the selective harvesters in the focused pool. |
JOB_SNAPSHOT_SNAPSHOT | QUICKSTART_COMMON_JOB_SNAPSHOT_SNAPSHOT | Queue used for sending jobs to the harvester configured for snapshot harvesting. |
THIS_REPOS_CLIENT | QUICKSTART_COMMON_THIS_REPOS_CLIENT_192.168.1.7_HCS_FOCUSED | One-per-client queue on which client receives replies from the repository. |
THE_REPOS | QUICKSTART_COMMON_THE_REPOS | Queue for sending messages to the Repository are. |
THE_BAMON | QUICKSTART_A_THE_BAMON | Queue for sending messages to bitarchive monitors. |
ALL_BA | QUICKSTART_A_ALL_BA_TOPIC | Topic for broadcasting messages to all bit archives. |
ANY_BA | QUICKSTART_A_ANY_BA | Queue for sending a message to one of the bit archives. |
THIS_INDEX_CLIENT | QUICKSTART_COMMON_THIS_INDEX_CLIENT_192.168.1.7_HCS_FOCUSED | Queue for getting responses from the IndexServer |
INDEX_SERVER | QUICKSTART_COMMON_INDEX_SERVER | Queue for sending messages to the IndexServer |
MONITOR | QUICKSTART_COMMON_MONITOR_TOPIC | Topic for the monitor registry |
ERROR | QUICKSTART_COMMON_ERROR_COMMON | Queue for errors which are not handled elsewhere. Never normally created or used. |
THE_CR | QUICKSTART_CS_THE_CR | Queue for sending messages to a specific Checksum replica. |
HARVESTER_STATUS | QUICKSTART_COMMON_HARVESTER_STATUS_TOPIC | Topic used by the harvesters to call in ready for new jobs |
HCHAN_VAL_REQ | QUICKSTART_COMMON_HCHAN_VAL_REQ | Queue for harvesters to register the harvest channel they are processing jobs from. |
HCHAN_VAL_RESP | QUICKSTART_COMMON_HCHAN_VAL_RESP | Queue for response from the HarvestManager to the Harvesters requesting HarvestChannel registrations. |
The examples are using values
- Environment name QUICKSTART
- Possible replica identifiers A, CS
- IP on machine 192.168.1.7
HCS_FOCUSED
(for HarvestControllerApplication with instance idFOCUSED
)