com.rabbitmq.client
Interface Channel

All Known Implementing Classes:
ChannelN

public interface Channel

Public API: Interface to an AMQ channel. See the spec for details.

To open a channel,

 Connection conn = ...;
 Channel channel = conn.createChannel();
 int ticket = channel.accessRequest(realmName);
 

Public API:

While a Channel can be used by multiple threads, it's important to ensure that only one thread executes a command at once. Concurrent execution of commands will likely cause an UnexpectedFrameError to be thrown.


Method Summary
 int accessRequest(java.lang.String realm)
          Request a non-exclusive access ticket for the specified realm.
 int accessRequest(java.lang.String realm, boolean exclusive, boolean passive, boolean active, boolean write, boolean read)
          Request an access ticket for the named realm and the given role and exclusivity flags
 void basicAck(long deliveryTag, boolean multiple)
          Acknowledge one or several received messages.
 void basicCancel(java.lang.String consumerTag)
          Cancel a consumer.
 java.lang.String basicConsume(int ticket, java.lang.String queue, boolean noAck, Consumer callback)
          Start a non-nolocal, non-exclusive consumer, with a server-generated consumerTag.
 java.lang.String basicConsume(int ticket, java.lang.String queue, boolean noAck, java.lang.String consumerTag, boolean noLocal, boolean exclusive, Consumer callback)
          Start a consumer.
 java.lang.String basicConsume(int ticket, java.lang.String queue, boolean noAck, java.lang.String consumerTag, Consumer callback)
          Start a non-nolocal, non-exclusive consumer.
 java.lang.String basicConsume(int ticket, java.lang.String queue, Consumer callback)
          Start a non-nolocal, non-exclusive consumer, with explicit acknowledgements required and a server-generated consumerTag.
 GetResponse basicGet(int ticket, java.lang.String queue, boolean noAck)
          Retrieve a message from a queue using AMQP.Basic.Get
 void basicPublish(int ticket, java.lang.String exchange, java.lang.String routingKey, AMQP.BasicProperties props, byte[] body)
          Publish a message with both "mandatory" and "immediate" flags set to false
 void basicPublish(int ticket, java.lang.String exchange, java.lang.String routingKey, boolean mandatory, boolean immediate, AMQP.BasicProperties props, byte[] body)
          Publish a message
 void close(int closeCode, java.lang.String closeMessage)
          Close this channel with the given code and message
 AMQP.Exchange.DeclareOk exchangeDeclare(int ticket, java.lang.String exchange, java.lang.String type)
          Actively declare a non-autodelete, non-durable exchange with no extra arguments
 AMQP.Exchange.DeclareOk exchangeDeclare(int ticket, java.lang.String exchange, java.lang.String type, boolean durable)
          Actively declare a non-autodelete exchange with no extra arguments
 AMQP.Exchange.DeclareOk exchangeDeclare(int ticket, java.lang.String exchange, java.lang.String type, boolean passive, boolean durable, boolean autoDelete, java.util.Map<java.lang.String,java.lang.Object> arguments)
          Declare an exchange, via an interface that allows the complete set of arguments The name of the new queue is held in the "queue" field of the AMQP.Queue.DeclareOk result.
 AMQP.Exchange.DeleteOk exchangeDelete(int ticket, java.lang.String exchange)
          Delete an exchange, without regard for whether it is in use or not
 AMQP.Exchange.DeleteOk exchangeDelete(int ticket, java.lang.String exchange, boolean ifUnused)
          Delete an exchange
 int getChannelNumber()
          Retrieve this channel's channel number.
 Connection getConnection()
          Retrieve the connection which carries this channel.
 ReturnListener getReturnListener()
          Return the current ReturnListener.
 AMQP.Queue.BindOk queueBind(int ticket, java.lang.String queue, java.lang.String exchange, java.lang.String routingKey)
          Bind a queue to an exchange, with no extra arguments.
 AMQP.Queue.BindOk queueBind(int ticket, java.lang.String queue, java.lang.String exchange, java.lang.String routingKey, java.util.Map<java.lang.String,java.lang.Object> arguments)
          Bind a queue to an exchange.
 AMQP.Queue.DeclareOk queueDeclare(int ticket)
          Actively declare a server-named exclusive, autodelete, non-durable queue.
 AMQP.Queue.DeclareOk queueDeclare(int ticket, java.lang.String queue)
          Actively declare a non-exclusive, non-autodelete, non-durable queue
 AMQP.Queue.DeclareOk queueDeclare(int ticket, java.lang.String queue, boolean durable)
          Actively declare a non-exclusive, non-autodelete queue The name of the new queue is held in the "queue" field of the AMQP.Queue.DeclareOk result.
 AMQP.Queue.DeclareOk queueDeclare(int ticket, java.lang.String queue, boolean passive, boolean durable, boolean exclusive, boolean autoDelete, java.util.Map<java.lang.String,java.lang.Object> arguments)
          Declare a queue
 AMQP.Queue.DeleteOk queueDelete(int ticket, java.lang.String queue)
          Delete a queue, without regard for whether it is in use or has messages on it
 AMQP.Queue.DeleteOk queueDelete(int ticket, java.lang.String queue, boolean ifUnused, boolean ifEmpty)
          Delete a queue
 void setReturnListener(ReturnListener listener)
          Set the current ReturnListener.
 AMQP.Tx.CommitOk txCommit()
          Commits a TX transaction on this channel.
 AMQP.Tx.RollbackOk txRollback()
          Rolls back a TX transaction on this channel.
 AMQP.Tx.SelectOk txSelect()
          Enables TX mode on this channel.
 

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(int closeCode,
           java.lang.String closeMessage)
           throws java.io.IOException
Close this channel with the given code and message

Parameters:
closeCode - the close code (See under "Reply Codes" in the AMQP specification)
closeMessage - a message indicating the reason for closing the channel
Throws:
java.io.IOException - if an error is encountered

getReturnListener

ReturnListener getReturnListener()
Return the current ReturnListener.

Returns:
an interface to the current return listener

setReturnListener

void setReturnListener(ReturnListener listener)
Set the current ReturnListener.

Parameters:
listener - the listener to use, or null indicating "don't use one".

accessRequest

int accessRequest(java.lang.String realm)
                  throws java.io.IOException
Request a non-exclusive access ticket for the specified realm. The access ticket is valid within the current channel and for the lifespan of the channel.

Parameters:
realm - the name of the realm
Returns:
a valid access ticket
Throws:
java.io.IOException - if an error is encountered e.g. we don't have permission
See Also:
AMQP.Access.Request

accessRequest

int accessRequest(java.lang.String realm,
                  boolean exclusive,
                  boolean passive,
                  boolean active,
                  boolean write,
                  boolean read)
                  throws java.io.IOException
Request an access ticket for the named realm and the given role and exclusivity flags

Parameters:
realm - the name of the realm
exclusive - true if we are requesting exclusive access
passive - true if we are requesting passive access
active - true if we are requesting active access
write - true if we are requesting write access
read - true if we are requesting read access
Returns:
a valid access ticket
Throws:
java.io.IOException - if an error is encountered e.g. we don't have permission
See Also:
AMQP.Access.Request

basicPublish

void basicPublish(int ticket,
                  java.lang.String exchange,
                  java.lang.String routingKey,
                  AMQP.BasicProperties props,
                  byte[] body)
                  throws java.io.IOException
Publish a message with both "mandatory" and "immediate" flags set to false

Parameters:
ticket - an access ticket for the appropriate realm
exchange - the exchange to publish the message to
routingKey - the routing key
props - other properties for the message - routing headers etc
body - the message body
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Publish

basicPublish

void basicPublish(int ticket,
                  java.lang.String exchange,
                  java.lang.String routingKey,
                  boolean mandatory,
                  boolean immediate,
                  AMQP.BasicProperties props,
                  byte[] body)
                  throws java.io.IOException
Publish a message

Parameters:
ticket - an access ticket for the appropriate realm
exchange - the exchange to publish the message to
mandatory - true if we are requesting a mandatory publish
immediate - true if we are requesting an immediate publish
routingKey - the routing key
props - other properties for the message - routing headers etc
body - the message body
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Publish

exchangeDelete

AMQP.Exchange.DeleteOk exchangeDelete(int ticket,
                                      java.lang.String exchange)
                                      throws java.io.IOException
Delete an exchange, without regard for whether it is in use or not

Parameters:
ticket - an access ticket for the appropriate realm
exchange - the name of the exchange
Returns:
a deletion-confirm method to indicate the exchange was successfully deleted
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Exchange.Delete, AMQP.Exchange.DeleteOk

exchangeDeclare

AMQP.Exchange.DeclareOk exchangeDeclare(int ticket,
                                        java.lang.String exchange,
                                        java.lang.String type)
                                        throws java.io.IOException
Actively declare a non-autodelete, non-durable exchange with no extra arguments

Parameters:
ticket - an access ticket for the appropriate realm
exchange - the name of the exchange
type - the exchange type
Returns:
a deletion-confirm method to indicate the exchange was successfully deleted
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Exchange.Declare, AMQP.Exchange.DeclareOk

exchangeDelete

AMQP.Exchange.DeleteOk exchangeDelete(int ticket,
                                      java.lang.String exchange,
                                      boolean ifUnused)
                                      throws java.io.IOException
Delete an exchange

Parameters:
ticket - an access ticket for the appropriate realm
exchange - the name of the exchange
ifUnused - 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:
java.io.IOException - if an error is encountered
See Also:
AMQP.Exchange.Delete, AMQP.Exchange.DeleteOk

exchangeDeclare

AMQP.Exchange.DeclareOk exchangeDeclare(int ticket,
                                        java.lang.String exchange,
                                        java.lang.String type,
                                        boolean durable)
                                        throws java.io.IOException
Actively declare a non-autodelete exchange with no extra arguments

Parameters:
ticket - an access ticket for the appropriate realm
exchange - the name of the exchange
type - the exchange type
durable - 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:
java.io.IOException - if an error is encountered
See Also:
AMQP.Exchange.Declare, AMQP.Exchange.DeclareOk

queueDeclare

AMQP.Queue.DeclareOk queueDeclare(int ticket,
                                  java.lang.String queue,
                                  boolean durable)
                                  throws java.io.IOException
Actively declare a non-exclusive, non-autodelete queue The name of the new queue is held in the "queue" field of the AMQP.Queue.DeclareOk result.

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
durable - 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:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Declare, AMQP.Queue.DeclareOk

exchangeDeclare

AMQP.Exchange.DeclareOk exchangeDeclare(int ticket,
                                        java.lang.String exchange,
                                        java.lang.String type,
                                        boolean passive,
                                        boolean durable,
                                        boolean autoDelete,
                                        java.util.Map<java.lang.String,java.lang.Object> arguments)
                                        throws java.io.IOException
Declare an exchange, via an interface that allows the complete set of arguments The name of the new queue is held in the "queue" field of the AMQP.Queue.DeclareOk result.

Parameters:
ticket - an access ticket for the appropriate realm
exchange - the name of the exchange
type - the exchange type
passive - true if we are passively declaring a exchange (asserting the exchange already exists)
durable - 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 use
arguments - other properties (construction arguments) for the exchange
Returns:
a declaration-confirm method to indicate the exchange was successfully declared
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Exchange.Declare, AMQP.Exchange.DeclareOk

queueDeclare

AMQP.Queue.DeclareOk queueDeclare(int ticket)
                                  throws java.io.IOException
Actively declare a server-named exclusive, autodelete, non-durable queue. The name of the new queue is held in the "queue" field of the AMQP.Queue.DeclareOk result.

Parameters:
ticket - an access ticket for the appropriate realm
Returns:
a declaration-confirm method to indicate the exchange was successfully declared
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Declare, AMQP.Queue.DeclareOk

queueDeclare

AMQP.Queue.DeclareOk queueDeclare(int ticket,
                                  java.lang.String queue)
                                  throws java.io.IOException
Actively declare a non-exclusive, non-autodelete, non-durable queue

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
Returns:
a declaration-confirm method to indicate the queue was successfully declared
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Declare, AMQP.Queue.DeclareOk

queueDeclare

AMQP.Queue.DeclareOk queueDeclare(int ticket,
                                  java.lang.String queue,
                                  boolean passive,
                                  boolean durable,
                                  boolean exclusive,
                                  boolean autoDelete,
                                  java.util.Map<java.lang.String,java.lang.Object> arguments)
                                  throws java.io.IOException
Declare a queue

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
passive - true if we are passively declaring a queue (asserting the queue already exists)
durable - true if we are declaring a durable queue (the queue will survive a server restart)
exclusive - true if we are declaring an exclusive queue
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:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Declare, AMQP.Queue.DeclareOk

queueDelete

AMQP.Queue.DeleteOk queueDelete(int ticket,
                                java.lang.String queue)
                                throws java.io.IOException
Delete a queue, without regard for whether it is in use or has messages on it

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
Returns:
a deletion-confirm method to indicate the queue was successfully deleted
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Delete, AMQP.Queue.DeleteOk

queueDelete

AMQP.Queue.DeleteOk queueDelete(int ticket,
                                java.lang.String queue,
                                boolean ifUnused,
                                boolean ifEmpty)
                                throws java.io.IOException
Delete a queue

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
ifUnused - true if the queue should be deleted only if not in use
ifEmpty - true if the queue should be deleted only if empty
Returns:
a deletion-confirm method to indicate the queue was successfully deleted
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Delete, AMQP.Queue.DeleteOk

queueBind

AMQP.Queue.BindOk queueBind(int ticket,
                            java.lang.String queue,
                            java.lang.String exchange,
                            java.lang.String routingKey)
                            throws java.io.IOException
Bind a queue to an exchange, with no extra arguments.

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
exchange - the name of the exchange
routingKey - the routine key to use for the binding
Returns:
a binding-confirm method if the binding was successfully created
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Bind, AMQP.Queue.BindOk

queueBind

AMQP.Queue.BindOk queueBind(int ticket,
                            java.lang.String queue,
                            java.lang.String exchange,
                            java.lang.String routingKey,
                            java.util.Map<java.lang.String,java.lang.Object> arguments)
                            throws java.io.IOException
Bind a queue to an exchange.

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
exchange - the name of the exchange
routingKey - the routine key to use for the binding
arguments - other properties (binding parameters)
Returns:
a binding-confirm method if the binding was successfully created
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Queue.Bind, AMQP.Queue.BindOk

basicGet

GetResponse basicGet(int ticket,
                     java.lang.String queue,
                     boolean noAck)
                     throws java.io.IOException
Retrieve a message from a queue using AMQP.Basic.Get

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
noAck - true if no handshake is required
Returns:
a GetResponse containing the retrieved message data
Throws:
java.io.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 java.io.IOException
Acknowledge one or several received messages. Supply the deliveryTag from the AMQP.Basic.GetOk or AMQP.Basic.Deliver method containing the received message being acknowledged.

Parameters:
deliveryTag - the tag from the received AMQP.Basic.GetOk or AMQP.Basic.Deliver
multiple - true if we are acknowledging multiple messages with the same delivery tag
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Ack

basicConsume

java.lang.String basicConsume(int ticket,
                              java.lang.String queue,
                              Consumer callback)
                              throws java.io.IOException
Start a non-nolocal, non-exclusive consumer, with explicit acknowledgements required and a server-generated consumerTag.

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
callback - an interface to the consumer object
Returns:
the consumerTag generated by the server
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Consume, AMQP.Basic.ConsumeOk, basicAck(long, boolean), basicConsume(int,String,boolean,String,boolean,boolean,Consumer)

basicConsume

java.lang.String basicConsume(int ticket,
                              java.lang.String queue,
                              boolean noAck,
                              Consumer callback)
                              throws java.io.IOException
Start a non-nolocal, non-exclusive consumer, with a server-generated consumerTag.

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
noAck - true if no handshake is required
callback - an interface to the consumer object
Returns:
the consumerTag generated by the server
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Consume, AMQP.Basic.ConsumeOk, basicConsume(int,String,boolean,String,boolean,boolean,Consumer)

basicConsume

java.lang.String basicConsume(int ticket,
                              java.lang.String queue,
                              boolean noAck,
                              java.lang.String consumerTag,
                              Consumer callback)
                              throws java.io.IOException
Start a non-nolocal, non-exclusive consumer.

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
noAck - true if no handshake is required
consumerTag - a client-generated consumer tag to establish context
callback - an interface to the consumer object
Returns:
the consumerTag associated with the new consumer
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Consume, AMQP.Basic.ConsumeOk, basicConsume(int,String,boolean,String,boolean,boolean,Consumer)

basicConsume

java.lang.String basicConsume(int ticket,
                              java.lang.String queue,
                              boolean noAck,
                              java.lang.String consumerTag,
                              boolean noLocal,
                              boolean exclusive,
                              Consumer callback)
                              throws java.io.IOException
Start a consumer. Calls the consumer's Consumer.handleConsumeOk(java.lang.String) method before returning.

Parameters:
ticket - an access ticket for the appropriate realm
queue - the name of the queue
noAck - true if no handshake is required
consumerTag - a client-generated consumer tag to establish context
noLocal - flag set to true unless server local buffering is required
exclusive - true if this is an exclusive consumer
callback - an interface to the consumer object
Returns:
the consumerTag associated with the new consumer
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Consume, AMQP.Basic.ConsumeOk

basicCancel

void basicCancel(java.lang.String consumerTag)
                 throws java.io.IOException
Cancel a consumer. Calls the consumer's Consumer.handleCancelOk(java.lang.String) method before returning.

Parameters:
consumerTag - a client- or server-generated consumer tag to establish context
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Basic.Cancel, AMQP.Basic.CancelOk

txSelect

AMQP.Tx.SelectOk txSelect()
                          throws java.io.IOException
Enables TX mode on this channel.

Returns:
a transaction-selection method to indicate the transaction was successfully initiated
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Tx.Select, AMQP.Tx.SelectOk

txCommit

AMQP.Tx.CommitOk txCommit()
                          throws java.io.IOException
Commits a TX transaction on this channel.

Returns:
a transaction-commit method to indicate the transaction was successfully committed
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Tx.Commit, AMQP.Tx.CommitOk

txRollback

AMQP.Tx.RollbackOk txRollback()
                              throws java.io.IOException
Rolls back a TX transaction on this channel.

Returns:
a transaction-rollback method to indicate the transaction was successfully rolled back
Throws:
java.io.IOException - if an error is encountered
See Also:
AMQP.Tx.Rollback, AMQP.Tx.RollbackOk