Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.rabbitmq.client.impl
Class AMQConnection

    java.lang.Object
      com.rabbitmq.client.impl.ShutdownNotifierComponent
          com.rabbitmq.client.impl.AMQConnection

All Implemented Interfaces:
  Connection, ShutdownNotifier

    public class AMQConnection

extends ShutdownNotifierComponent
implements Connection

Concrete class representing and managing an AMQP connection to a broker.

To create a broker connection, use `ConnectionFactory`. See `Connection` for an example.

Field Summary
`static int` | `HANDSHAKE_TIMEOUT` Timeout used while waiting for AMQP handshaking to complete (milliseconds)

Constructor Summary
`AMQConnection(java.lang.String username, java.lang.String password, FrameHandler frameHandler, java.util.concurrent.ExecutorService executor, java.lang.String virtualHost, java.util.Map<java.lang.String,java.lang.Object> clientProperties, int requestedFrameMax, int requestedChannelMax, int requestedHeartbeat, SaslConfig saslConfig)` Construct a new connection using a default ExeceptionHandler
`AMQConnection(java.lang.String username, java.lang.String password, FrameHandler frameHandler, java.util.concurrent.ExecutorService executor, java.lang.String virtualHost, java.util.Map<java.lang.String,java.lang.Object> clientProperties, int requestedFrameMax, int requestedChannelMax, int requestedHeartbeat, SaslConfig saslConfig, ExceptionHandler execeptionHandler)` Construct a new connection

Method Summary
`void` | `abort()` Public API - Abort this connection and all its channels with the `AMQP.REPLY_SUCCESS` close code and message 'OK'.
`void` | `abort(int timeout)` Public API - Abort this connection and all its channels with the `AMQP.REPLY_SUCCESS` close code and message 'OK'.
`void` | `abort(int closeCode, java.lang.String closeMessage)` Public API - Abort this connection and all its channels.
`void` | `abort(int closeCode, java.lang.String closeMessage, int timeout)` Public API - Abort this connection and all its channels.
`void` | `close()` Public API - Close this connection and all its channels with the `AMQP.REPLY_SUCCESS` close code and message 'OK'.
`void` | `close(int timeout)` Public API - Close this connection and all its channels with the `AMQP.REPLY_SUCCESS` close code and message 'OK'.
`void` | `close(int closeCode, java.lang.String closeMessage)` Public API - Close this connection and all its channels.
`void` | `close(int closeCode, java.lang.String closeMessage, boolean initiatedByApplication, java.lang.Throwable cause)` Protected API - Delegates to `the six-argument close method`, passing -1 for the timeout, and false for the abort flag.
`void` | `close(int closeCode, java.lang.String closeMessage, boolean initiatedByApplication, java.lang.Throwable cause, int timeout, boolean abort)` Protected API - Close this connection with the given code, message, source and timeout value for all the close operations to complete.
`void` | `close(int closeCode, java.lang.String closeMessage, int timeout)` Public API - Close this connection and all its channels.
`Channel` | `createChannel()` Public API - Create a new channel, using an internally allocated channel number.
`Channel` | `createChannel(int channelNumber)` Public API - Create a new channel, using the specified channel number if possible.
`static java.util.Map<java.lang.String,java.lang.Object>` | `defaultClientProperties()` Retrieve a copy of the default table of client properties that will be sent to the server during connection startup.
`void` | `disconnectChannel(ChannelN channel)` Protected API - respond, in the driver thread, to a ShutdownSignal.
`void` | `flush()` Public API - flush the output buffers
`java.net.InetAddress` | `getAddress()` Retrieve the host.
`int` | `getChannelMax()` Get the negotiated maximum channel number.
`java.util.Map<java.lang.String,java.lang.Object>` | `getClientProperties()` Get a copy of the map of client properties sent to the server
`ExceptionHandler` | `getExceptionHandler()` Protected API - retrieve the current ExceptionHandler
`FrameHandler` | `getFrameHandler()`
`int` | `getFrameMax()` Get the negotiated maximum frame size.
`int` | `getHeartbeat()` Get the negotiated heartbeat interval.
`int` | `getPort()` Retrieve the port number.
`java.util.Map<java.lang.String,java.lang.Object>` | `getServerProperties()` Retrieve the server properties.
`void` | `handleConnectionClose(Command closeCommand)`
`boolean` | `processControlCommand(Command c)` Handles incoming control commands on channel zero.
`void` | `setHeartbeat(int heartbeat)` Protected API - set the heartbeat timeout.
`ShutdownSignalException` | `shutdown(java.lang.Object reason, boolean initiatedByApplication, java.lang.Throwable cause, boolean notifyRpc)` Protected API - causes all attached channels to terminate (shutdown) with a ShutdownSignal built from the argument, and stops this connection from accepting further work from the application.
`void` | `start()` Start up the connection, including the MainLoop thread.
`java.lang.String` | `toString()`
`void` | `writeFrame(Frame f)` Public API - sends a frame directly to the broker.

Methods inherited from class com.rabbitmq.client.impl.ShutdownNotifierComponent
`addShutdownListener, getCloseReason, isOpen, notifyListeners, removeShutdownListener, setShutdownCauseIfOpen`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface com.rabbitmq.client.ShutdownNotifier
`addShutdownListener, getCloseReason, isOpen, notifyListeners, removeShutdownListener`

Field Detail

### HANDSHAKE_TIMEOUT

    public static final int HANDSHAKE_TIMEOUT

  Timeout used while waiting for AMQP handshaking to complete (milliseconds)

  See Also:
    Constant Field Values

Constructor Detail

### AMQConnection

    public AMQConnection(java.lang.String username,
                         java.lang.String password,
                         FrameHandler frameHandler,
                         java.util.concurrent.ExecutorService executor,
                         java.lang.String virtualHost,
                         java.util.Map<java.lang.String,java.lang.Object> clientProperties,
                         int requestedFrameMax,
                         int requestedChannelMax,
                         int requestedHeartbeat,
                         SaslConfig saslConfig)

  Construct a new connection using a default ExeceptionHandler

  Parameters:
    `username` - name used to establish connection
    `password` - for `username`
    `frameHandler` - for sending and receiving frames on this connection
    `executor` - thread pool service for consumer threads for channels on this connection
    `virtualHost` - virtual host of this connection
    `clientProperties` - client info used in negotiating with the server
    `requestedFrameMax` - max size of frame offered
    `requestedChannelMax` - max number of channels offered
    `requestedHeartbeat` - heart-beat in seconds offered
    `saslConfig` - sasl configuration hook

### AMQConnection

    public AMQConnection(java.lang.String username,
                         java.lang.String password,
                         FrameHandler frameHandler,
                         java.util.concurrent.ExecutorService executor,
                         java.lang.String virtualHost,
                         java.util.Map<java.lang.String,java.lang.Object> clientProperties,
                         int requestedFrameMax,
                         int requestedChannelMax,
                         int requestedHeartbeat,
                         SaslConfig saslConfig,
                         ExceptionHandler execeptionHandler)

  Construct a new connection

  Parameters:
    `username` - name used to establish connection
    `password` - for `username`
    `frameHandler` - for sending and receiving frames on this connection
    `executor` - thread pool service for consumer threads for channels on this connection
    `virtualHost` - virtual host of this connection
    `clientProperties` - client info used in negotiating with the server
    `requestedFrameMax` - max size of frame offered
    `requestedChannelMax` - max number of channels offered
    `requestedHeartbeat` - heart-beat in seconds offered
    `saslConfig` - sasl configuration hook
    `execeptionHandler` - handler for exceptions using this connection

Method Detail

### defaultClientProperties

    public static final java.util.Map<java.lang.String,java.lang.Object> defaultClientProperties()

  Retrieve a copy of the default table of client properties that will be sent to the server during connection startup. This method is called when each new ConnectionFactory instance is constructed.

  Returns:
    a map of client properties
  See Also:
    `Connection.getClientProperties()`

### disconnectChannel

    public final void disconnectChannel(ChannelN channel)

  Protected API - respond, in the driver thread, to a ShutdownSignal.

  Parameters:
    `channel` - the channel to disconnect

### getAddress

    public java.net.InetAddress getAddress()

  Retrieve the host.

  Specified by:
    `getAddress` in interface `Connection`
  Returns:
    the hostname of the peer we're connected to.

### getPort

    public int getPort()

  Retrieve the port number.

  Specified by:
    `getPort` in interface `Connection`
  Returns:
    the port number of the peer we're connected to.

### getFrameHandler

    public FrameHandler getFrameHandler()

### getServerProperties

    public java.util.Map<java.lang.String,java.lang.Object> getServerProperties()

  Retrieve the server properties.

  Specified by:
    `getServerProperties` in interface `Connection`
  Returns:
    a map of the server properties. This typically includes the product name and version of the server.

### start

    public void start()
               throws java.io.IOException

  Start up the connection, including the MainLoop thread. Sends the protocol version negotiation header, and runs through Connection.Start/.StartOk, Connection.Tune/.TuneOk, and then calls Connection.Open and waits for the OpenOk. Sets heart-beat and frame max values after tuning has taken place.

  Throws:
    `java.io.IOException` - if an error is encountered either before, or during, protocol negotiation; sub-classes `ProtocolVersionMismatchException` and `PossibleAuthenticationFailureException` will be thrown in the corresponding circumstances. If an exception is thrown, connection resources allocated can all be garbage collected when the connection object is no longer referenced.

### getChannelMax

    public int getChannelMax()

  Get the negotiated maximum channel number. Usable channel numbers range from 1 to this number, inclusive.

  Specified by:
    `getChannelMax` in interface `Connection`
  Returns:
    the maximum channel number permitted for this connection.

### getFrameMax

    public int getFrameMax()

  Get the negotiated maximum frame size.

  Specified by:
    `getFrameMax` in interface `Connection`
  Returns:
    the maximum frame size, in octets; zero if unlimited

### getHeartbeat

    public int getHeartbeat()

  Get the negotiated heartbeat interval.

  Specified by:
    `getHeartbeat` in interface `Connection`
  Returns:
    the heartbeat interval, in seconds; zero if none

### setHeartbeat

    public void setHeartbeat(int heartbeat)

  Protected API - set the heartbeat timeout. Should only be called during tuning.

### getClientProperties

    public java.util.Map<java.lang.String,java.lang.Object> getClientProperties()

  Description copied from interface: `Connection`
  Get a copy of the map of client properties sent to the server

  Specified by:
    `getClientProperties` in interface `Connection`
  Returns:
    a copy of the map of client properties

### getExceptionHandler

    public ExceptionHandler getExceptionHandler()

  Protected API - retrieve the current ExceptionHandler

### createChannel

    public Channel createChannel(int channelNumber)
                          throws java.io.IOException

  Public API - Create a new channel, using the specified channel number if possible.

  Specified by:
    `createChannel` in interface `Connection`
  Parameters:
    `channelNumber` - the channel number to allocate
  Returns:
    a new channel descriptor, or null if this channel number is already in use
  Throws:
    `java.io.IOException` - if an I/O problem is encountered

### createChannel

    public Channel createChannel()
                          throws java.io.IOException

  Public API - Create a new channel, using an internally allocated channel number.

  Specified by:
    `createChannel` in interface `Connection`
  Returns:
    a new channel descriptor, or null if none is available
  Throws:
    `java.io.IOException` - if an I/O problem is encountered

### writeFrame

    public void writeFrame(Frame f)
                    throws java.io.IOException

  Public API - sends a frame directly to the broker.

  Throws:
    `java.io.IOException`

### flush

    public void flush()
               throws java.io.IOException

  Public API - flush the output buffers

  Throws:
    `java.io.IOException`

### processControlCommand

    public boolean processControlCommand(Command c)
                                  throws java.io.IOException

  Handles incoming control commands on channel zero.

  Throws:
    `java.io.IOException`
  See Also:
    `ChannelN.processAsync(com.rabbitmq.client.Command)`

### handleConnectionClose

    public void handleConnectionClose(Command closeCommand)

### shutdown

    public ShutdownSignalException shutdown(java.lang.Object reason,
                                            boolean initiatedByApplication,
                                            java.lang.Throwable cause,
                                            boolean notifyRpc)

  Protected API - causes all attached channels to terminate (shutdown) with a ShutdownSignal built from the argument, and stops this connection from accepting further work from the application. `ShutdownListener`s for the connection are notified when the main loop terminates.

  Parameters:
    `reason` - object being shutdown
    `initiatedByApplication` - true if caused by a client command
    `cause` - trigger exception which caused shutdown
    `notifyRpc` - true if outstanding rpc should be informed of shutdown
  Returns:
    a shutdown signal built using the given arguments

### close

    public void close()
               throws java.io.IOException

  Public API - Close this connection and all its channels with the `AMQP.REPLY_SUCCESS` close code and message 'OK'. Waits for all the close operations to complete.

  Specified by:
    `close` in interface `Connection`
  Throws:
    `java.io.IOException` - if an I/O problem is encountered

### close

    public void close(int timeout)
               throws java.io.IOException

  Public API - Close this connection and all its channels with the `AMQP.REPLY_SUCCESS` close code and message 'OK'. This method behaves in a similar way as `Connection.close()`, with the only difference that it waits with a provided timeout for all the close operations to complete. When timeout is reached the socket is forced to close.

  Specified by:
    `close` in interface `Connection`
  Parameters:
    `timeout` - timeout (in milliseconds) for completing all the close-related operations, use -1 for infinity
  Throws:
    `java.io.IOException` - if an I/O problem is encountered

### close

    public void close(int closeCode,
                      java.lang.String closeMessage)
               throws java.io.IOException

  Public API - Close this connection and all its channels. Waits for all the close operations to complete.

  Specified by:
    `close` in interface `Connection`
  Parameters:
    `closeCode` - the close code (See under "Reply Codes" in the AMQP specification)
    `closeMessage` - a message indicating the reason for closing the connection
  Throws:
    `java.io.IOException` - if an I/O problem is encountered

### close

    public void close(int closeCode,
                      java.lang.String closeMessage,
                      int timeout)
               throws java.io.IOException

  Public API - Close this connection and all its channels. Waits with the given timeout for all the close operations to complete. When timeout is reached the socket is forced to close.

  Specified by:
    `close` in interface `Connection`
  Parameters:
    `closeCode` - the close code (See under "Reply Codes" in the AMQP specification)
    `closeMessage` - a message indicating the reason for closing the connection
    `timeout` - timeout (in milliseconds) for completing all the close-related operations, use -1 for infinity
  Throws:
    `java.io.IOException` - if an I/O problem is encountered

### abort

    public void abort()

  Public API - Abort this connection and all its channels with the `AMQP.REPLY_SUCCESS` close code and message 'OK'. Forces the connection to close. Any encountered exceptions in the close operations are silently discarded.

  Specified by:
    `abort` in interface `Connection`

### abort

    public void abort(int closeCode,
                      java.lang.String closeMessage)

  Public API - Abort this connection and all its channels. Forces the connection to close and waits for all the close operations to complete. Any encountered exceptions in the close operations are silently discarded.

  Specified by:
    `abort` in interface `Connection`
  Parameters:
    `closeCode` - the close code (See under "Reply Codes" in the AMQP specification)
    `closeMessage` - a message indicating the reason for closing the connection

### abort

    public void abort(int timeout)

  Public API - Abort this connection and all its channels with the `AMQP.REPLY_SUCCESS` close code and message 'OK'. This method behaves in a similar way as `Connection.abort()`, with the only difference that it waits with a provided timeout for all the close operations to complete. When timeout is reached the socket is forced to close.

  Specified by:
    `abort` in interface `Connection`
  Parameters:
    `timeout` - timeout (in milliseconds) for completing all the close-related operations, use -1 for infinity

### abort

    public void abort(int closeCode,
                      java.lang.String closeMessage,
                      int timeout)

  Public API - Abort this connection and all its channels. Forces the connection to close and waits with the given timeout for all the close operations to complete. When timeout is reached the socket is forced to close. Any encountered exceptions in the close operations are silently discarded.

  Specified by:
    `abort` in interface `Connection`
  Parameters:
    `closeCode` - the close code (See under "Reply Codes" in the AMQP specification)
    `closeMessage` - a message indicating the reason for closing the connection
    `timeout` - timeout (in milliseconds) for completing all the close-related operations, use -1 for infinity

### close

    public void close(int closeCode,
                      java.lang.String closeMessage,
                      boolean initiatedByApplication,
                      java.lang.Throwable cause)
               throws java.io.IOException

  Protected API - Delegates to `the six-argument close method`, passing -1 for the timeout, and false for the abort flag.

  Throws:
    `java.io.IOException`

### close

    public void close(int closeCode,
                      java.lang.String closeMessage,
                      boolean initiatedByApplication,
                      java.lang.Throwable cause,
                      int timeout,
                      boolean abort)
               throws java.io.IOException

  Protected API - Close this connection with the given code, message, source and timeout value for all the close operations to complete. Specifies if any encountered exceptions should be ignored.

  Throws:
    `java.io.IOException`

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD