Interface Channel
-
- All Superinterfaces:
ShutdownNotifier
- All Known Subinterfaces:
RecoverableChannel
- All Known Implementing Classes:
AutorecoveringChannel,ChannelN,RecoveryAwareChannelN
public interface Channel extends ShutdownNotifier
Interface to a channel. All non-deprecated methods of this interface are part of the public API.Tutorials
RabbitMQ tutorials demonstrate how key methods of this interface are used.User Guide
See Java Client User Guide.Concurrency Considerations
Channelinstances must not be shared between threads. Applications should prefer using aChannelper thread instead of sharing the sameChannelacross multiple threads. While some operations on channels are safe to invoke concurrently, some are not and will result in incorrect frame interleaving on the wire. Sharing channels between threads will also interfere with Publisher Confirms. As such, applications need to use aChannelper thread.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description voidabort()Abort this channel with theAMQP.REPLY_SUCCESSclose code and message 'OK'.voidabort(int closeCode, String closeMessage)Abort this channel.voidaddConfirmListener(ConfirmListener listener)Add aConfirmListener.voidaddFlowListener(FlowListener listener)Deprecated.voidaddReturnListener(ReturnListener listener)Add aReturnListener.voidasyncRpc(Method method)Asynchronously send a method over this channel.voidbasicAck(long deliveryTag, boolean multiple)Acknowledge one or several received messages.voidbasicCancel(String consumerTag)Cancel a consumer.StringbasicConsume(String queue, boolean autoAck, Consumer callback)Start a non-nolocal, non-exclusive consumer, with a server-generated consumerTag.StringbasicConsume(String queue, boolean autoAck, String consumerTag, boolean noLocal, boolean exclusive, Map<String,Object> arguments, Consumer callback)Start a consumer.StringbasicConsume(String queue, boolean autoAck, String consumerTag, Consumer callback)Start a non-nolocal, non-exclusive consumer.StringbasicConsume(String queue, boolean autoAck, Map<String,Object> arguments, Consumer callback)Start a non-nolocal, non-exclusive consumer, with a server-generated consumerTag and specified arguments.StringbasicConsume(String queue, Consumer callback)Start a non-nolocal, non-exclusive consumer, with explicit acknowledgement and a server-generated consumerTag.GetResponsebasicGet(String queue, boolean autoAck)Retrieve a message from a queue usingAMQP.Basic.GetvoidbasicNack(long deliveryTag, boolean multiple, boolean requeue)Reject one or several received messages.voidbasicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, AMQP.BasicProperties props, byte[] body)Publish a message.voidbasicPublish(String exchange, String routingKey, boolean mandatory, AMQP.BasicProperties props, byte[] body)Publish a message.voidbasicPublish(String exchange, String routingKey, AMQP.BasicProperties props, byte[] body)Publish a message.voidbasicQos(int prefetchCount)Request a specific prefetchCount "quality of service" settings for this channel.voidbasicQos(int prefetchCount, boolean global)Request a specific prefetchCount "quality of service" settings for this channel.voidbasicQos(int prefetchSize, int prefetchCount, boolean global)Request specific "quality of service" settings.AMQP.Basic.RecoverOkbasicRecover()Ask the broker to resend unacknowledged messages.AMQP.Basic.RecoverOkbasicRecover(boolean requeue)Ask the broker to resend unacknowledged messages.voidbasicReject(long deliveryTag, boolean requeue)Reject a message.voidclearConfirmListeners()Remove allConfirmListeners.voidclearFlowListeners()Deprecated.voidclearReturnListeners()Remove allReturnListeners.voidclose()Close this channel with theAMQP.REPLY_SUCCESSclose code and message 'OK'.voidclose(int closeCode, String closeMessage)Close this channel.AMQP.Confirm.SelectOkconfirmSelect()Enables publisher acknowledgements on this channel.longconsumerCount(String queue)Returns the number of consumers on a queue.AMQP.Exchange.BindOkexchangeBind(String destination, String source, String routingKey)Bind an exchange to an exchange, with no extra arguments.AMQP.Exchange.BindOkexchangeBind(String destination, String source, String routingKey, Map<String,Object> arguments)Bind an exchange to an exchange.voidexchangeBindNoWait(String destination, String source, String routingKey, Map<String,Object> arguments)LikeexchangeBind(String, String, String, java.util.Map)but sets nowait parameter to true and returns void (as there will be no response from the server).AMQP.Exchange.DeclareOkexchangeDeclare(String exchange, BuiltinExchangeType type)Actively declare a non-autodelete, non-durable exchange with no extra argumentsAMQP.Exchange.DeclareOkexchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable)Actively declare a non-autodelete exchange with no extra argumentsAMQP.Exchange.DeclareOkexchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, boolean internal, Map<String,Object> arguments)Declare an exchange, via an interface that allows the complete set of arguments.AMQP.Exchange.DeclareOkexchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, Map<String,Object> arguments)Declare an exchange.AMQP.Exchange.DeclareOkexchangeDeclare(String exchange, String type)Actively declare a non-autodelete, non-durable exchange with no extra argumentsAMQP.Exchange.DeclareOkexchangeDeclare(String exchange, String type, boolean durable)Actively declare a non-autodelete exchange with no extra argumentsAMQP.Exchange.DeclareOkexchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete, boolean internal, Map<String,Object> arguments)Declare an exchange, via an interface that allows the complete set of arguments.AMQP.Exchange.DeclareOkexchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete, Map<String,Object> arguments)Declare an exchange.voidexchangeDeclareNoWait(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, boolean internal, Map<String,Object> arguments)LikeexchangeDeclare(String, String, boolean, boolean, java.util.Map)but sets nowait parameter to true and returns nothing (as there will be no response from the server).voidexchangeDeclareNoWait(String exchange, String type, boolean durable, boolean autoDelete, boolean internal, Map<String,Object> arguments)LikeexchangeDeclare(String, String, boolean, boolean, java.util.Map)but sets nowait parameter to true and returns nothing (as there will be no response from the server).AMQP.Exchange.DeclareOkexchangeDeclarePassive(String name)Declare an exchange passively; that is, check if the named exchange exists.AMQP.Exchange.DeleteOkexchangeDelete(String exchange)Delete an exchange, without regard for whether it is in use or notAMQP.Exchange.DeleteOkexchangeDelete(String exchange, boolean ifUnused)Delete an exchangevoidexchangeDeleteNoWait(String exchange, boolean ifUnused)LikeexchangeDelete(String, boolean)but sets nowait parameter to true and returns void (as there will be no response from the server).AMQP.Exchange.UnbindOkexchangeUnbind(String destination, String source, String routingKey)Unbind an exchange from an exchange, with no extra arguments.AMQP.Exchange.UnbindOkexchangeUnbind(String destination, String source, String routingKey, Map<String,Object> arguments)Unbind an exchange from an exchange.voidexchangeUnbindNoWait(String destination, String source, String routingKey, Map<String,Object> arguments)Same asexchangeUnbind(String, String, String, java.util.Map)but sets no-wait parameter to true and returns nothing (as there will be no response from the server).booleanflowBlocked()Deprecated.intgetChannelNumber()Retrieve this channel's channel number.ConnectiongetConnection()Retrieve the connection which carries this channel.ConsumergetDefaultConsumer()Get the current default consumer.longgetNextPublishSeqNo()When in confirm mode, returns the sequence number of the next message to be published.longmessageCount(String queue)Returns the number of messages in a queue ready to be delivered to consumers.AMQP.Queue.BindOkqueueBind(String queue, String exchange, String routingKey)Bind a queue to an exchange, with no extra arguments.AMQP.Queue.BindOkqueueBind(String queue, String exchange, String routingKey, Map<String,Object> arguments)Bind a queue to an exchange.voidqueueBindNoWait(String queue, String exchange, String routingKey, Map<String,Object> arguments)Same asqueueBind(String, String, String, java.util.Map)but sets nowait parameter to true and returns void (as there will be no response from the server).AMQP.Queue.DeclareOkqueueDeclare()Actively declare a server-named exclusive, autodelete, non-durable queue.AMQP.Queue.DeclareOkqueueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String,Object> arguments)Declare a queuevoidqueueDeclareNoWait(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String,Object> arguments)LikequeueDeclare(String, boolean, boolean, boolean, java.util.Map)but sets nowait flag to true and returns no result (as there will be no response from the server).AMQP.Queue.DeclareOkqueueDeclarePassive(String queue)Declare a queue passively; i.e., check if it exists.AMQP.Queue.DeleteOkqueueDelete(String queue)Delete a queue, without regard for whether it is in use or has messages on itAMQP.Queue.DeleteOkqueueDelete(String queue, boolean ifUnused, boolean ifEmpty)Delete a queuevoidqueueDeleteNoWait(String queue, boolean ifUnused, boolean ifEmpty)LikequeueDelete(String, boolean, boolean)but sets nowait parameter to true and returns nothing (as there will be no response from the server).AMQP.Queue.PurgeOkqueuePurge(String queue)Purges the contents of the given queue.AMQP.Queue.UnbindOkqueueUnbind(String queue, String exchange, String routingKey)Unbinds a queue from an exchange, with no extra arguments.AMQP.Queue.UnbindOkqueueUnbind(String queue, String exchange, String routingKey, Map<String,Object> arguments)Unbind a queue from an exchange.booleanremoveConfirmListener(ConfirmListener listener)Remove aConfirmListener.booleanremoveFlowListener(FlowListener listener)Deprecated.booleanremoveReturnListener(ReturnListener listener)Remove aReturnListener.Commandrpc(Method method)Synchronously send a method over this channel.voidsetDefaultConsumer(Consumer consumer)Set the current default consumer.AMQP.Tx.CommitOktxCommit()Commits a TX transaction on this channel.AMQP.Tx.RollbackOktxRollback()Rolls back a TX transaction on this channel.AMQP.Tx.SelectOktxSelect()Enables TX mode on this channel.booleanwaitForConfirms()Wait until all messages published since the last call have been either ack'd or nack'd by the broker.booleanwaitForConfirms(long timeout)Wait until all messages published since the last call have been either ack'd or nack'd by the broker; or until timeout elapses.voidwaitForConfirmsOrDie()Wait until all messages published since the last call have been either ack'd or nack'd by the broker.voidwaitForConfirmsOrDie(long timeout)Wait until all messages published since the last call have been either ack'd or nack'd by the broker; or until timeout elapses.-
Methods inherited from interface com.rabbitmq.client.ShutdownNotifier
addShutdownListener, getCloseReason, isOpen, notifyListeners, removeShutdownListener
-
-
-
-
Method Detail
-
getChannelNumber
int getChannelNumber()
Retrieve this channel's channel number.- Returns:
- the channel number
-
getConnection
Connection getConnection()
Retrieve the connection which carries this channel.- Returns:
- the underlying
Connection
-
close
void close() throws IOException, TimeoutExceptionClose this channel with theAMQP.REPLY_SUCCESSclose code and message 'OK'.- Throws:
IOException- if an error is encounteredTimeoutException
-
close
void close(int closeCode, String closeMessage) throws IOException, TimeoutExceptionClose this channel.- Parameters:
closeCode- the close code (See under "Reply Codes" in the AMQP specification)closeMessage- a message indicating the reason for closing the connection- Throws:
IOException- if an error is encounteredTimeoutException
-
flowBlocked
boolean flowBlocked()
Deprecated.Deprecated, superseded by TCP back pressure. Will be removed in next major release.- See Also:
- Resource-driven alarms
-
abort
void abort() throws IOExceptionAbort this channel with theAMQP.REPLY_SUCCESSclose code and message 'OK'. Forces the channel to close and waits for the close operation to complete. Any encountered exceptions in the close operation are silently discarded.- Throws:
IOException
-
abort
void abort(int closeCode, String closeMessage) throws IOExceptionAbort this channel. Forces the channel to close and waits for the close operation to complete. Any encountered exceptions in the close operation are silently discarded.- Throws:
IOException
-
addReturnListener
void addReturnListener(ReturnListener listener)
Add aReturnListener.- Parameters:
listener- the listener to add
-
removeReturnListener
boolean removeReturnListener(ReturnListener listener)
Remove aReturnListener.- Parameters:
listener- the listener to remove- Returns:
trueif the listener was found and removed,falseotherwise
-
clearReturnListeners
void clearReturnListeners()
Remove allReturnListeners.
-
addFlowListener
void addFlowListener(FlowListener listener)
Deprecated.Add aFlowListener. Deprecated, superseded by TCP back pressure. Will be removed in next major release.- Parameters:
listener- the listener to add- See Also:
- Resource-driven alarms
-
removeFlowListener
boolean removeFlowListener(FlowListener listener)
Deprecated.Remove aFlowListener. Deprecated, superseded by TCP back pressure. Will be removed in next major release.- Parameters:
listener- the listener to remove- Returns:
trueif the listener was found and removed,falseotherwise- See Also:
- Resource-driven alarms
-
clearFlowListeners
void clearFlowListeners()
Deprecated.Remove allFlowListeners. Deprecated, superseded by TCP back pressure. Will be removed in next major release.- See Also:
- Resource-driven alarms
-
addConfirmListener
void addConfirmListener(ConfirmListener listener)
Add aConfirmListener.- Parameters:
listener- the listener to add
-
removeConfirmListener
boolean removeConfirmListener(ConfirmListener listener)
Remove aConfirmListener.- Parameters:
listener- the listener to remove- Returns:
trueif the listener was found and removed,falseotherwise
-
clearConfirmListeners
void clearConfirmListeners()
Remove allConfirmListeners.
-
getDefaultConsumer
Consumer getDefaultConsumer()
Get the current default consumer. @see setDefaultConsumer for rationale.- Returns:
- an interface to the current default consumer.
-
setDefaultConsumer
void setDefaultConsumer(Consumer consumer)
Set the current default consumer. Under certain circumstances it is possible for a channel to receive a message delivery which does not match any consumer which is currently set up via basicConsume(). This will occur after the following sequence of events: ctag = basicConsume(queue, consumer); // i.e. with explicit acks // some deliveries take place but are not acked basicCancel(ctag); basicRecover(false); Since requeue is specified to be false in the basicRecover, the spec states that the message must be redelivered to "the original recipient" - i.e. the same channel / consumer-tag. But the consumer is no longer active. In these circumstances, you can register a default consumer to handle such deliveries. If no default consumer is registered an IllegalStateException will be thrown when such a delivery arrives. Most people will not need to use this.- Parameters:
consumer- the consumer to use, or null indicating "don't use one".
-
basicQos
void basicQos(int prefetchSize, int prefetchCount, boolean global) throws IOExceptionRequest specific "quality of service" settings.These settings impose limits on the amount of data the server will deliver to consumers before requiring acknowledgements. Thus they provide a means of consumer-initiated flow control.
Note the prefetch count must be between 0 and 65535 (unsigned short in AMQP 0-9-1).
- Parameters:
prefetchSize- maximum amount of content (measured in octets) that the server will deliver, 0 if unlimitedprefetchCount- maximum number of messages that the server will deliver, 0 if unlimitedglobal- true if the settings should be applied to the entire channel rather than each consumer- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Qos
-
basicQos
void basicQos(int prefetchCount, boolean global) throws IOExceptionRequest a specific prefetchCount "quality of service" settings for this channel.Note the prefetch count must be between 0 and 65535 (unsigned short in AMQP 0-9-1).
- Parameters:
prefetchCount- maximum number of messages that the server will deliver, 0 if unlimitedglobal- true if the settings should be applied to the entire channel rather than each consumer- Throws:
IOException- if an error is encountered- See Also:
basicQos(int, int, boolean)
-
basicQos
void basicQos(int prefetchCount) throws IOExceptionRequest a specific prefetchCount "quality of service" settings for this channel.Note the prefetch count must be between 0 and 65535 (unsigned short in AMQP 0-9-1).
- Parameters:
prefetchCount- maximum number of messages that the server will deliver, 0 if unlimited- Throws:
IOException- if an error is encountered- See Also:
basicQos(int, int, boolean)
-
basicPublish
void basicPublish(String exchange, String routingKey, AMQP.BasicProperties props, byte[] body) throws IOException
Publish a message. Publishing to a non-existent exchange will result in a channel-level protocol exception, which closes the channel. Invocations ofChannel#basicPublishwill eventually block if a resource-driven alarm is in effect.- Parameters:
exchange- the exchange to publish the message toroutingKey- the routing keyprops- other properties for the message - routing headers etcbody- the message body- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Publish, Resource-driven alarms
-
basicPublish
void basicPublish(String exchange, String routingKey, boolean mandatory, AMQP.BasicProperties props, byte[] body) throws IOException
Publish a message. Invocations ofChannel#basicPublishwill eventually block if a resource-driven alarm is in effect.- Parameters:
exchange- the exchange to publish the message toroutingKey- the routing keymandatory- true if the 'mandatory' flag is to be setprops- other properties for the message - routing headers etcbody- the message body- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Publish, Resource-driven alarms
-
basicPublish
void basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, AMQP.BasicProperties props, byte[] body) throws IOException
Publish a message. Publishing to a non-existent exchange will result in a channel-level protocol exception, which closes the channel. Invocations ofChannel#basicPublishwill eventually block if a resource-driven alarm is in effect.- Parameters:
exchange- the exchange to publish the message toroutingKey- the routing keymandatory- true if the 'mandatory' flag is to be setimmediate- true if the 'immediate' flag is to be set. Note that the RabbitMQ server does not support this flag.props- other properties for the message - routing headers etcbody- the message body- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Publish, Resource-driven alarms
-
exchangeDeclare
AMQP.Exchange.DeclareOk exchangeDeclare(String exchange, String type) throws IOException
Actively declare a non-autodelete, non-durable exchange with no extra arguments- Parameters:
exchange- the name of the exchangetype- the exchange type- Returns:
- a declaration-confirm method to indicate the exchange was successfully declared
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Declare,AMQP.Exchange.DeclareOk
-
exchangeDeclare
AMQP.Exchange.DeclareOk exchangeDeclare(String exchange, BuiltinExchangeType type) throws IOException
Actively declare a non-autodelete, non-durable exchange with no extra arguments- Parameters:
exchange- the name of the exchangetype- the exchange type- Returns:
- a declaration-confirm method to indicate the exchange was successfully declared
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Declare,AMQP.Exchange.DeclareOk
-
exchangeDeclare
AMQP.Exchange.DeclareOk exchangeDeclare(String exchange, String type, boolean durable) throws IOException
Actively declare a non-autodelete exchange with no extra arguments- Parameters:
exchange- the name of the exchangetype- the exchange typedurable- true if we are declaring a durable exchange (the exchange will survive a server restart)- Returns:
- a declaration-confirm method to indicate the exchange was successfully declared
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Declare,AMQP.Exchange.DeclareOk
-
exchangeDeclare
AMQP.Exchange.DeclareOk exchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable) throws IOException
Actively declare a non-autodelete exchange with no extra arguments- Parameters:
exchange- the name of the exchangetype- the exchange typedurable- true if we are declaring a durable exchange (the exchange will survive a server restart)- Returns:
- a declaration-confirm method to indicate the exchange was successfully declared
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Declare,AMQP.Exchange.DeclareOk
-
exchangeDeclare
AMQP.Exchange.DeclareOk exchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete, Map<String,Object> arguments) throws IOException
Declare an exchange.- Parameters:
exchange- the name of the exchangetype- the exchange typedurable- true if we are declaring a durable exchange (the exchange will survive a server restart)autoDelete- true if the server should delete the exchange when it is no longer in usearguments- other properties (construction arguments) for the exchange- Returns:
- a declaration-confirm method to indicate the exchange was successfully declared
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Declare,AMQP.Exchange.DeclareOk
-
exchangeDeclare
AMQP.Exchange.DeclareOk exchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, Map<String,Object> arguments) throws IOException
Declare an exchange.- Parameters:
exchange- the name of the exchangetype- the exchange typedurable- true if we are declaring a durable exchange (the exchange will survive a server restart)autoDelete- true if the server should delete the exchange when it is no longer in usearguments- other properties (construction arguments) for the exchange- Returns:
- a declaration-confirm method to indicate the exchange was successfully declared
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Declare,AMQP.Exchange.DeclareOk
-
exchangeDeclare
AMQP.Exchange.DeclareOk exchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete, boolean internal, Map<String,Object> arguments) throws IOException
Declare an exchange, via an interface that allows the complete set of arguments.- Parameters:
exchange- the name of the exchangetype- the exchange typedurable- true if we are declaring a durable exchange (the exchange will survive a server restart)autoDelete- true if the server should delete the exchange when it is no longer in useinternal- true if the exchange is internal, i.e. can't be directly published to by a client.arguments- other properties (construction arguments) for the exchange- Returns:
- a declaration-confirm method to indicate the exchange was successfully declared
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Declare,AMQP.Exchange.DeclareOk
-
exchangeDeclare
AMQP.Exchange.DeclareOk exchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, boolean internal, Map<String,Object> arguments) throws IOException
Declare an exchange, via an interface that allows the complete set of arguments.- Parameters:
exchange- the name of the exchangetype- the exchange typedurable- true if we are declaring a durable exchange (the exchange will survive a server restart)autoDelete- true if the server should delete the exchange when it is no longer in useinternal- true if the exchange is internal, i.e. can't be directly published to by a client.arguments- other properties (construction arguments) for the exchange- Returns:
- a declaration-confirm method to indicate the exchange was successfully declared
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Declare,AMQP.Exchange.DeclareOk
-
exchangeDeclareNoWait
void exchangeDeclareNoWait(String exchange, String type, boolean durable, boolean autoDelete, boolean internal, Map<String,Object> arguments) throws IOException
LikeexchangeDeclare(String, String, boolean, boolean, java.util.Map)but sets nowait parameter to true and returns nothing (as there will be no response from the server).- Parameters:
exchange- the name of the exchangetype- the exchange typedurable- true if we are declaring a durable exchange (the exchange will survive a server restart)autoDelete- true if the server should delete the exchange when it is no longer in useinternal- true if the exchange is internal, i.e. can't be directly published to by a client.arguments- other properties (construction arguments) for the exchange- Throws:
IOException- if an error is encountered
-
exchangeDeclareNoWait
void exchangeDeclareNoWait(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, boolean internal, Map<String,Object> arguments) throws IOException
LikeexchangeDeclare(String, String, boolean, boolean, java.util.Map)but sets nowait parameter to true and returns nothing (as there will be no response from the server).- Parameters:
exchange- the name of the exchangetype- the exchange typedurable- true if we are declaring a durable exchange (the exchange will survive a server restart)autoDelete- true if the server should delete the exchange when it is no longer in useinternal- true if the exchange is internal, i.e. can't be directly published to by a client.arguments- other properties (construction arguments) for the exchange- Throws:
IOException- if an error is encountered
-
exchangeDeclarePassive
AMQP.Exchange.DeclareOk exchangeDeclarePassive(String name) throws IOException
Declare an exchange passively; that is, check if the named exchange exists.- Parameters:
name- check the existence of an exchange named this- Throws:
IOException- the server will raise a 404 channel exception if the named exchange does not exist.
-
exchangeDelete
AMQP.Exchange.DeleteOk exchangeDelete(String exchange, boolean ifUnused) throws IOException
Delete an exchange- Parameters:
exchange- the name of the exchangeifUnused- true to indicate that the exchange is only to be deleted if it is unused- Returns:
- a deletion-confirm method to indicate the exchange was successfully deleted
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Delete,AMQP.Exchange.DeleteOk
-
exchangeDeleteNoWait
void exchangeDeleteNoWait(String exchange, boolean ifUnused) throws IOException
LikeexchangeDelete(String, boolean)but sets nowait parameter to true and returns void (as there will be no response from the server).- Parameters:
exchange- the name of the exchangeifUnused- true to indicate that the exchange is only to be deleted if it is unused- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Delete,AMQP.Exchange.DeleteOk
-
exchangeDelete
AMQP.Exchange.DeleteOk exchangeDelete(String exchange) throws IOException
Delete an exchange, without regard for whether it is in use or not- Parameters:
exchange- the name of the exchange- Returns:
- a deletion-confirm method to indicate the exchange was successfully deleted
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Delete,AMQP.Exchange.DeleteOk
-
exchangeBind
AMQP.Exchange.BindOk exchangeBind(String destination, String source, String routingKey) throws IOException
Bind an exchange to an exchange, with no extra arguments.- Parameters:
destination- the name of the exchange to which messages flow across the bindingsource- the name of the exchange from which messages flow across the bindingroutingKey- the routing key to use for the binding- Returns:
- a binding-confirm method if the binding was successfully created
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Bind,AMQP.Exchange.BindOk
-
exchangeBind
AMQP.Exchange.BindOk exchangeBind(String destination, String source, String routingKey, Map<String,Object> arguments) throws IOException
Bind an exchange to an exchange.- Parameters:
destination- the name of the exchange to which messages flow across the bindingsource- the name of the exchange from which messages flow across the bindingroutingKey- the routing key to use for the bindingarguments- other properties (binding parameters)- Returns:
- a binding-confirm method if the binding was successfully created
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Bind,AMQP.Exchange.BindOk
-
exchangeBindNoWait
void exchangeBindNoWait(String destination, String source, String routingKey, Map<String,Object> arguments) throws IOException
LikeexchangeBind(String, String, String, java.util.Map)but sets nowait parameter to true and returns void (as there will be no response from the server).- Parameters:
destination- the name of the exchange to which messages flow across the bindingsource- the name of the exchange from which messages flow across the bindingroutingKey- the routing key to use for the bindingarguments- other properties (binding parameters)- Throws:
IOException- if an error is encountered
-
exchangeUnbind
AMQP.Exchange.UnbindOk exchangeUnbind(String destination, String source, String routingKey) throws IOException
Unbind an exchange from an exchange, with no extra arguments.- Parameters:
destination- the name of the exchange to which messages flow across the bindingsource- the name of the exchange from which messages flow across the bindingroutingKey- the routing key to use for the binding- Returns:
- a binding-confirm method if the binding was successfully created
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Bind,AMQP.Exchange.BindOk
-
exchangeUnbind
AMQP.Exchange.UnbindOk exchangeUnbind(String destination, String source, String routingKey, Map<String,Object> arguments) throws IOException
Unbind an exchange from an exchange.- Parameters:
destination- the name of the exchange to which messages flow across the bindingsource- the name of the exchange from which messages flow across the bindingroutingKey- the routing key to use for the bindingarguments- other properties (binding parameters)- Returns:
- a binding-confirm method if the binding was successfully created
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Exchange.Bind,AMQP.Exchange.BindOk
-
exchangeUnbindNoWait
void exchangeUnbindNoWait(String destination, String source, String routingKey, Map<String,Object> arguments) throws IOException
Same asexchangeUnbind(String, String, String, java.util.Map)but sets no-wait parameter to true and returns nothing (as there will be no response from the server).- Parameters:
destination- the name of the exchange to which messages flow across the bindingsource- the name of the exchange from which messages flow across the bindingroutingKey- the routing key to use for the bindingarguments- other properties (binding parameters)- Throws:
IOException- if an error is encountered
-
queueDeclare
AMQP.Queue.DeclareOk queueDeclare() throws IOException
Actively declare a server-named exclusive, autodelete, non-durable queue. The name of the new queue is held in the "queue" field of theAMQP.Queue.DeclareOkresult.- Returns:
- a declaration-confirm method to indicate the queue was successfully declared
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Queue.Declare,AMQP.Queue.DeclareOk
-
queueDeclare
AMQP.Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String,Object> arguments) throws IOException
Declare a queue- Parameters:
queue- the name of the queuedurable- true if we are declaring a durable queue (the queue will survive a server restart)exclusive- true if we are declaring an exclusive queue (restricted to this connection)autoDelete- true if we are declaring an autodelete queue (server will delete it when no longer in use)arguments- other properties (construction arguments) for the queue- Returns:
- a declaration-confirm method to indicate the queue was successfully declared
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Queue.Declare,AMQP.Queue.DeclareOk
-
queueDeclareNoWait
void queueDeclareNoWait(String queue, boolean durable, boolean exclusive, boolean autoDelete, Map<String,Object> arguments) throws IOException
LikequeueDeclare(String, boolean, boolean, boolean, java.util.Map)but sets nowait flag to true and returns no result (as there will be no response from the server).- Parameters:
queue- the name of the queuedurable- true if we are declaring a durable queue (the queue will survive a server restart)exclusive- true if we are declaring an exclusive queue (restricted to this connection)autoDelete- true if we are declaring an autodelete queue (server will delete it when no longer in use)arguments- other properties (construction arguments) for the queue- Throws:
IOException- if an error is encountered
-
queueDeclarePassive
AMQP.Queue.DeclareOk queueDeclarePassive(String queue) throws IOException
Declare a queue passively; i.e., check if it exists. In AMQP 0-9-1, all arguments aside from nowait are ignored; and sending nowait makes this method a no-op, so we default it to false.- Parameters:
queue- the name of the queue- Returns:
- a declaration-confirm method to indicate the queue exists
- Throws:
IOException- if an error is encountered, including if the queue does not exist and if the queue is exclusively owned by another connection.- See Also:
AMQP.Queue.Declare,AMQP.Queue.DeclareOk
-
queueDelete
AMQP.Queue.DeleteOk queueDelete(String queue) throws IOException
Delete a queue, without regard for whether it is in use or has messages on it- Parameters:
queue- the name of the queue- Returns:
- a deletion-confirm method to indicate the queue was successfully deleted
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Queue.Delete,AMQP.Queue.DeleteOk
-
queueDelete
AMQP.Queue.DeleteOk queueDelete(String queue, boolean ifUnused, boolean ifEmpty) throws IOException
Delete a queue- Parameters:
queue- the name of the queueifUnused- true if the queue should be deleted only if not in useifEmpty- true if the queue should be deleted only if empty- Returns:
- a deletion-confirm method to indicate the queue was successfully deleted
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Queue.Delete,AMQP.Queue.DeleteOk
-
queueDeleteNoWait
void queueDeleteNoWait(String queue, boolean ifUnused, boolean ifEmpty) throws IOException
LikequeueDelete(String, boolean, boolean)but sets nowait parameter to true and returns nothing (as there will be no response from the server).- Parameters:
queue- the name of the queueifUnused- true if the queue should be deleted only if not in useifEmpty- true if the queue should be deleted only if empty- Throws:
IOException- if an error is encountered- See Also:
AMQP.Queue.Delete,AMQP.Queue.DeleteOk
-
queueBind
AMQP.Queue.BindOk queueBind(String queue, String exchange, String routingKey) throws IOException
Bind a queue to an exchange, with no extra arguments.- Parameters:
queue- the name of the queueexchange- the name of the exchangeroutingKey- the routing key to use for the binding- Returns:
- a binding-confirm method if the binding was successfully created
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Queue.Bind,AMQP.Queue.BindOk
-
queueBind
AMQP.Queue.BindOk queueBind(String queue, String exchange, String routingKey, Map<String,Object> arguments) throws IOException
Bind a queue to an exchange.- Parameters:
queue- the name of the queueexchange- the name of the exchangeroutingKey- the routing key to use for the bindingarguments- other properties (binding parameters)- Returns:
- a binding-confirm method if the binding was successfully created
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Queue.Bind,AMQP.Queue.BindOk
-
queueBindNoWait
void queueBindNoWait(String queue, String exchange, String routingKey, Map<String,Object> arguments) throws IOException
Same asqueueBind(String, String, String, java.util.Map)but sets nowait parameter to true and returns void (as there will be no response from the server).- Parameters:
queue- the name of the queueexchange- the name of the exchangeroutingKey- the routing key to use for the bindingarguments- other properties (binding parameters)- Throws:
IOException- if an error is encountered
-
queueUnbind
AMQP.Queue.UnbindOk queueUnbind(String queue, String exchange, String routingKey) throws IOException
Unbinds a queue from an exchange, with no extra arguments.- Parameters:
queue- the name of the queueexchange- the name of the exchangeroutingKey- the routing key to use for the binding- Returns:
- an unbinding-confirm method if the binding was successfully deleted
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Queue.Unbind,AMQP.Queue.UnbindOk
-
queueUnbind
AMQP.Queue.UnbindOk queueUnbind(String queue, String exchange, String routingKey, Map<String,Object> arguments) throws IOException
Unbind a queue from an exchange.- Parameters:
queue- the name of the queueexchange- the name of the exchangeroutingKey- the routing key to use for the bindingarguments- other properties (binding parameters)- Returns:
- an unbinding-confirm method if the binding was successfully deleted
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Queue.Unbind,AMQP.Queue.UnbindOk
-
queuePurge
AMQP.Queue.PurgeOk queuePurge(String queue) throws IOException
Purges the contents of the given queue.- Parameters:
queue- the name of the queue- Returns:
- a purge-confirm method if the purge was executed successfully
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Queue.Purge,AMQP.Queue.PurgeOk
-
basicGet
GetResponse basicGet(String queue, boolean autoAck) throws IOException
Retrieve a message from a queue usingAMQP.Basic.Get- Parameters:
queue- the name of the queueautoAck- true if the server should consider messages acknowledged once delivered; false if the server should expect explicit acknowledgements- Returns:
- a
GetResponsecontaining the retrieved message data - Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Get,AMQP.Basic.GetOk,AMQP.Basic.GetEmpty
-
basicAck
void basicAck(long deliveryTag, boolean multiple) throws IOExceptionAcknowledge one or several received messages. Supply the deliveryTag from theAMQP.Basic.GetOkorAMQP.Basic.Delivermethod containing the received message being acknowledged.- Parameters:
deliveryTag- the tag from the receivedAMQP.Basic.GetOkorAMQP.Basic.Delivermultiple- true to acknowledge all messages up to and including the supplied delivery tag; false to acknowledge just the supplied delivery tag.- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Ack
-
basicNack
void basicNack(long deliveryTag, boolean multiple, boolean requeue) throws IOExceptionReject one or several received messages. Supply thedeliveryTagfrom theAMQP.Basic.GetOkorAMQP.Basic.GetOkmethod containing the message to be rejected.- Parameters:
deliveryTag- the tag from the receivedAMQP.Basic.GetOkorAMQP.Basic.Delivermultiple- true to reject all messages up to and including the supplied delivery tag; false to reject just the supplied delivery tag.requeue- true if the rejected message(s) should be requeued rather than discarded/dead-lettered- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Nack
-
basicReject
void basicReject(long deliveryTag, boolean requeue) throws IOExceptionReject a message. Supply the deliveryTag from theAMQP.Basic.GetOkorAMQP.Basic.Delivermethod containing the received message being rejected.- Parameters:
deliveryTag- the tag from the receivedAMQP.Basic.GetOkorAMQP.Basic.Deliverrequeue- true if the rejected message should be requeued rather than discarded/dead-lettered- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Reject
-
basicConsume
String basicConsume(String queue, Consumer callback) throws IOException
Start a non-nolocal, non-exclusive consumer, with explicit acknowledgement and a server-generated consumerTag.- Parameters:
queue- the name of the queuecallback- an interface to the consumer object- Returns:
- the consumerTag generated by the server
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Consume,AMQP.Basic.ConsumeOk,basicAck(long, boolean),basicConsume(String, boolean, String, boolean, boolean, Map, Consumer)
-
basicConsume
String basicConsume(String queue, boolean autoAck, Consumer callback) throws IOException
Start a non-nolocal, non-exclusive consumer, with a server-generated consumerTag.- Parameters:
queue- the name of the queueautoAck- true if the server should consider messages acknowledged once delivered; false if the server should expect explicit acknowledgementscallback- an interface to the consumer object- Returns:
- the consumerTag generated by the server
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Consume,AMQP.Basic.ConsumeOk,basicConsume(String, boolean, String, boolean, boolean, Map, Consumer)
-
basicConsume
String basicConsume(String queue, boolean autoAck, Map<String,Object> arguments, Consumer callback) throws IOException
Start a non-nolocal, non-exclusive consumer, with a server-generated consumerTag and specified arguments.- Parameters:
queue- the name of the queueautoAck- true if the server should consider messages acknowledged once delivered; false if the server should expect explicit acknowledgementsarguments- a set of arguments for the consumecallback- an interface to the consumer object- Returns:
- the consumerTag generated by the server
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Consume,AMQP.Basic.ConsumeOk,basicConsume(String, boolean, String, boolean, boolean, Map, Consumer)
-
basicConsume
String basicConsume(String queue, boolean autoAck, String consumerTag, Consumer callback) throws IOException
Start a non-nolocal, non-exclusive consumer.- Parameters:
queue- the name of the queueautoAck- true if the server should consider messages acknowledged once delivered; false if the server should expect explicit acknowledgementsconsumerTag- a client-generated consumer tag to establish contextcallback- an interface to the consumer object- Returns:
- the consumerTag associated with the new consumer
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Consume,AMQP.Basic.ConsumeOk,basicConsume(String, boolean, String, boolean, boolean, Map, Consumer)
-
basicConsume
String basicConsume(String queue, boolean autoAck, String consumerTag, boolean noLocal, boolean exclusive, Map<String,Object> arguments, Consumer callback) throws IOException
Start a consumer. Calls the consumer'sConsumer.handleConsumeOk(java.lang.String)method.- Parameters:
queue- the name of the queueautoAck- true if the server should consider messages acknowledged once delivered; false if the server should expect explicit acknowledgementsconsumerTag- a client-generated consumer tag to establish contextnoLocal- true if the server should not deliver to this consumer messages published on this channel's connectionexclusive- true if this is an exclusive consumercallback- an interface to the consumer objectarguments- a set of arguments for the consume- Returns:
- the consumerTag associated with the new consumer
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Basic.Consume,AMQP.Basic.ConsumeOk
-
basicCancel
void basicCancel(String consumerTag) throws IOException
Cancel a consumer. Calls the consumer'sConsumer.handleCancelOk(java.lang.String)method.- Parameters:
consumerTag- a client- or server-generated consumer tag to establish context- Throws:
IOException- if an error is encountered, or if the consumerTag is unknown- See Also:
AMQP.Basic.Cancel,AMQP.Basic.CancelOk
-
basicRecover
AMQP.Basic.RecoverOk basicRecover() throws IOException
Ask the broker to resend unacknowledged messages. In 0-8 basic.recover is asynchronous; in 0-9-1 it is synchronous, and the new, deprecated method basic.recover_async is asynchronous.
Equivalent to callingbasicRecover(true), messages will be requeued and possibly delivered to a different consumer.- Throws:
IOException- See Also:
basicRecover(boolean)
-
basicRecover
AMQP.Basic.RecoverOk basicRecover(boolean requeue) throws IOException
Ask the broker to resend unacknowledged messages. In 0-8 basic.recover is asynchronous; in 0-9-1 it is synchronous, and the new, deprecated method basic.recover_async is asynchronous.- Parameters:
requeue- If true, messages will be requeued and possibly delivered to a different consumer. If false, messages will be redelivered to the same consumer.- Throws:
IOException
-
txSelect
AMQP.Tx.SelectOk txSelect() throws IOException
Enables TX mode on this channel.- Returns:
- a transaction-selection method to indicate the transaction was successfully initiated
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Tx.Select,AMQP.Tx.SelectOk
-
txCommit
AMQP.Tx.CommitOk txCommit() throws IOException
Commits a TX transaction on this channel.- Returns:
- a transaction-commit method to indicate the transaction was successfully committed
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Tx.Commit,AMQP.Tx.CommitOk
-
txRollback
AMQP.Tx.RollbackOk txRollback() throws IOException
Rolls back a TX transaction on this channel.- Returns:
- a transaction-rollback method to indicate the transaction was successfully rolled back
- Throws:
IOException- if an error is encountered- See Also:
AMQP.Tx.Rollback,AMQP.Tx.RollbackOk
-
confirmSelect
AMQP.Confirm.SelectOk confirmSelect() throws IOException
Enables publisher acknowledgements on this channel.- Throws:
IOException- if an error is encountered- See Also:
AMQP.Confirm.Select
-
getNextPublishSeqNo
long getNextPublishSeqNo()
When in confirm mode, returns the sequence number of the next message to be published.- Returns:
- the sequence number of the next message to be published
-
waitForConfirms
boolean waitForConfirms() throws InterruptedExceptionWait until all messages published since the last call have been either ack'd or nack'd by the broker. Note, when called on a non-Confirm channel, waitForConfirms throws an IllegalStateException.- Returns:
- whether all the messages were ack'd (and none were nack'd)
- Throws:
IllegalStateExceptionInterruptedException
-
waitForConfirms
boolean waitForConfirms(long timeout) throws InterruptedException, TimeoutExceptionWait until all messages published since the last call have been either ack'd or nack'd by the broker; or until timeout elapses. If the timeout expires a TimeoutException is thrown. When called on a non-Confirm channel, waitForConfirms throws an IllegalStateException.- Returns:
- whether all the messages were ack'd (and none were nack'd)
- Throws:
IllegalStateExceptionInterruptedExceptionTimeoutException
-
waitForConfirmsOrDie
void waitForConfirmsOrDie() throws IOException, InterruptedExceptionWait until all messages published since the last call have been either ack'd or nack'd by the broker. If any of the messages were nack'd, waitForConfirmsOrDie will throw an IOException. When called on a non-Confirm channel, it will throw an IllegalStateException.
-
waitForConfirmsOrDie
void waitForConfirmsOrDie(long timeout) throws IOException, InterruptedException, TimeoutExceptionWait until all messages published since the last call have been either ack'd or nack'd by the broker; or until timeout elapses. If the timeout expires a TimeoutException is thrown. If any of the messages were nack'd, waitForConfirmsOrDie will throw an IOException. When called on a non-Confirm channel, it will throw an IllegalStateException.
-
asyncRpc
void asyncRpc(Method method) throws IOException
Asynchronously send a method over this channel.- Parameters:
method- method to transmit over this channel.- Throws:
IOException- Problem transmitting method.
-
rpc
Command rpc(Method method) throws IOException
Synchronously send a method over this channel.- Parameters:
method- method to transmit over this channel.- Returns:
- command response to method. Caller should cast as appropriate.
- Throws:
IOException- Problem transmitting method.
-
messageCount
long messageCount(String queue) throws IOException
Returns the number of messages in a queue ready to be delivered to consumers. This method assumes the queue exists. If it doesn't, the channels will be closed with an exception.- Parameters:
queue- the name of the queue- Returns:
- the number of messages in ready state
- Throws:
IOException- Problem transmitting method.
-
consumerCount
long consumerCount(String queue) throws IOException
Returns the number of consumers on a queue. This method assumes the queue exists. If it doesn't, the channel will be closed with an exception.- Parameters:
queue- the name of the queue- Returns:
- the number of consumers
- Throws:
IOException- Problem transmitting method.
-
-