## org.hornetq.api.core.client
Interface ClientProducer

    public interface ClientProducer

A ClientProducer is used to send messages to a specific address. Messages are then routed on the server to any queues that are bound to the address. A ClientProducer can either be created with a specific address in mind or with none. With the latter the address must be provided using the appropriate send() method.
The sending semantics can change depending on what blocking semantics are set via `ClientSessionFactory#setBlockOnDurableSend(boolean)` and `org.hornetq.api.core.client.ClientSessionFactory#setBlockOnNonDurableSend(boolean)` . If set to true then for each message type, durable and non durable respectively, any exceptions such as the address not existing or security exceptions will be thrown at the time of send. Alternatively if set to false then exceptions will only be logged on the server.
The send rate can also be controlled via `ClientSessionFactory#setProducerMaxRate(int)` and the `org.hornetq.api.core.client.ClientSessionFactory#setProducerWindowSize(int)`.

Author:
  Tim Fox, Andy Taylor

Method Summary
`void` `close()` Closes the ClientProducer.
`SimpleString` `getAddress()` Returns the address where messages will be sent.
`int` `getMaxRate()` Returns the maximum rate at which a ClientProducer can send messages per second.
`boolean` `isBlockOnDurableSend()` Returns whether the producer will block when sending durable messages.
`boolean` `isBlockOnNonDurableSend()` Returns whether the producer will block when sending non-durable messages.
`boolean` `isClosed()` Returns whether the producer is closed or not.
`void` `send(Message message)` Sends a message to an address.
`void` `send(SimpleString address, Message message)` Sends a message to the specified address instead of the ClientProducer's address.
`void` `send(String address, Message message)` Sends a message to the specified address instead of the ClientProducer's address.

Method Detail

### getAddress

    SimpleString getAddress()

  Returns the address where messages will be sent.
  The address can be `null` if the ClientProducer was creating without specifying an address, that is by using `ClientSession.createProducer()`.

  Returns:
    the address where messages will be sent

### send

    void send(Message message)
              throws HornetQException

  Sends a message to an address. specified in `ClientSession.createProducer(String)` or similar methods.
  This will block until confirmation that the message has reached the server has been received if `ClientSessionFactory#setBlockOnDurableSend(boolean)` or `org.hornetq.api.core.client.ClientSessionFactory#setBlockOnNonDurableSend(boolean)` are set to `true` for the specified message type.

  Parameters:
    `message` - the message to send
  Throws:
    `HornetQException` - if an exception occurs while sending the message

### send

    void send(SimpleString address,
              Message message)
              throws HornetQException

  Sends a message to the specified address instead of the ClientProducer's address.
  This will block until confirmation that the message has reached the server has been received if `ClientSessionFactory#setBlockOnDurableSend(boolean)` or `org.hornetq.api.core.client.ClientSessionFactory#setBlockOnNonDurableSend(boolean)` are set to true for the specified message type.

  Parameters:
    `address` - the address where the message will be sent
    `message` - the message to send
  Throws:
    `HornetQException` - if an exception occurs while sending the message

### send

    void send(String address,
              Message message)
              throws HornetQException

  Sends a message to the specified address instead of the ClientProducer's address.
  This will block until confirmation that the message has reached the server has been received if `ClientSessionFactory#setBlockOnDurableSend(boolean)` or `org.hornetq.api.core.client.ClientSessionFactory#setBlockOnNonDurableSend(boolean)` are set to true for the specified message type.

  Parameters:
    `address` - the address where the message will be sent
    `message` - the message to send
  Throws:
    `HornetQException` - if an exception occurs while sending the message

### close

    void close()
               throws HornetQException

  Closes the ClientProducer. If already closed nothing is done.

  Throws:
    `HornetQException` - if an exception occurs while closing the producer

### isClosed

    boolean isClosed()

  Returns whether the producer is closed or not.

  Returns:
    `true` if the producer is closed, `false` else

### isBlockOnDurableSend

    boolean isBlockOnDurableSend()

  Returns whether the producer will block when sending durable messages.

  Returns:
    `true` if the producer blocks when sending durable, `false` else

### isBlockOnNonDurableSend

    boolean isBlockOnNonDurableSend()

  Returns whether the producer will block when sending non-durable messages.

  Returns:
    `true` if the producer blocks when sending non-durable, `false` else

### getMaxRate

    int getMaxRate()

  Returns the maximum rate at which a ClientProducer can send messages per second.

  Returns:
    the producers maximum rate

Copyright © 2009 Red Hat Inc. All Rights Reserved.