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 ServerLocator.setBlockOnDurableSend(boolean) and ServerLocator.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 ServerLocator.setProducerMaxRate(int) and the ServerLocator.setProducerWindowSize(int).

Author:
Tim Fox, Andy Taylor

Method Summary
 void close()
          Closes the ClientProducer.
 org.hornetq.api.core.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(org.hornetq.api.core.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

org.hornetq.api.core.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 org.hornetq.api.core.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 ServerLocator.setBlockOnDurableSend(boolean) or ServerLocator.setBlockOnNonDurableSend(boolean) are set to true for the specified message type.

Parameters:
message - the message to send
Throws:
org.hornetq.api.core.HornetQException - if an exception occurs while sending the message

send

void send(org.hornetq.api.core.SimpleString address,
          Message message)
          throws org.hornetq.api.core.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 ServerLocator.setBlockOnDurableSend(boolean) or ServerLocator.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:
org.hornetq.api.core.HornetQException - if an exception occurs while sending the message

send

void send(String address,
          Message message)
          throws org.hornetq.api.core.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 ServerLocator.setBlockOnDurableSend(boolean) or ServerLocator.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:
org.hornetq.api.core.HornetQException - if an exception occurs while sending the message

close

void close()
           throws org.hornetq.api.core.HornetQException
Closes the ClientProducer. If already closed nothing is done.

Throws:
org.hornetq.api.core.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 © 2012 JBoss, a division of Red Hat. All Rights Reserved.