Package com.rabbitmq.client.impl
Class ChannelManager
java.lang.Object
com.rabbitmq.client.impl.ChannelManager
- Direct Known Subclasses:
RecoveryAwareChannelManager
Manages a set of channels, indexed by channel number (
1.._channelMax).-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final MetricsCollectorprotected final ObservationCollector -
Constructor Summary
ConstructorsConstructorDescriptionChannelManager(ConsumerWorkService workService, int channelMax) ChannelManager(ConsumerWorkService workService, int channelMax, ThreadFactory threadFactory) ChannelManager(ConsumerWorkService workService, int channelMax, ThreadFactory threadFactory, MetricsCollector metricsCollector, ObservationCollector observationCollector) -
Method Summary
Modifier and TypeMethodDescriptioncreateChannel(AMQConnection connection) createChannel(AMQConnection connection, int channelNumber) getChannel(int channelNumber) Looks up a channel on this connection.intvoidhandleSignal(ShutdownSignalException signal) Handle shutdown.protected ChannelNinstantiateChannel(AMQConnection connection, int channelNumber, ConsumerWorkService workService) voidreleaseChannelNumber(ChannelN channel) Remove the channel from the channel map and free the number for re-use.voidsetChannelShutdownTimeout(int channelShutdownTimeout) Set the shutdown timeout for channels.voidsetShutdownExecutor(ExecutorService shutdownExecutor)
-
Field Details
-
metricsCollector
-
observationCollector
-
-
Constructor Details
-
ChannelManager
-
ChannelManager
-
ChannelManager
public ChannelManager(ConsumerWorkService workService, int channelMax, ThreadFactory threadFactory, MetricsCollector metricsCollector, ObservationCollector observationCollector)
-
-
Method Details
-
getChannelMax
public int getChannelMax() -
getChannel
Looks up a channel on this connection.- Parameters:
channelNumber- the number of the required channel- Returns:
- the channel on this connection with number
channelNumber - Throws:
com.rabbitmq.client.impl.UnknownChannelException- if there is no channel with numberchannelNumberon this connection
-
handleSignal
Handle shutdown. All the managedChannels are shutdown.- Parameters:
signal- reason for shutdown
-
createChannel
- Throws:
IOException
-
createChannel
- Throws:
IOException
-
instantiateChannel
protected ChannelN instantiateChannel(AMQConnection connection, int channelNumber, ConsumerWorkService workService) -
releaseChannelNumber
Remove the channel from the channel map and free the number for re-use. This method must be safe to call multiple times on the same channel. If it is not then things go badly wrong. -
getShutdownExecutor
-
setShutdownExecutor
-
setChannelShutdownTimeout
public void setChannelShutdownTimeout(int channelShutdownTimeout) Set the shutdown timeout for channels. This is the amount of time the manager waits for a channel to shutdown before giving up. Works only when theshutdownExecutorproperty is set. Default toConnectionFactory.DEFAULT_HEARTBEAT+ 5 % seconds- Parameters:
channelShutdownTimeout- shutdown timeout in milliseconds
-