A channel can be in one of many states at any time. Some states also have substates. From a given state a channel can move into other states.
Figure 1 shows the hierarchy of all possible channel states and the substates that apply to each of the channel states.
Figure 2 shows the links between channel states. These links apply to all types of message channel and server-connection channels.Figure 1. Channel states and substatesFigure 2. Flows between channel states
Current and active
A channel is current if it is in any state other than inactive. A current channel is active unless it is in RETRYING, STOPPED, or STARTING state. When a channel is active, it is consuming resource and a process or thread is running. The seven possible states of an active channel (INITIALIZING, BINDING, SWITCHING, REQUESTING, RUNNING, PAUSED, or STOPPING) are highlighted in Figure 2.
An active channel can also show a substate giving more detail of exactly what the channel is doing. The substates for each state are shown in Figure 1.
Current and active
The channel is current if it is in any state other than inactive. A current channel is active unless it is in RETRYING, STOPPED, or STARTING state.
Channel errors
Errors on channels cause the channel to stop further transmissions. If the channel is a sender or server, it goes to RETRY state because it is possible that the problem might clear itself. If it cannot go to RETRY state, the channel goes to STOPPED state.