Class ActiveMQMessageProducer
- java.lang.Object
-
- org.apache.activemq.ActiveMQMessageProducerSupport
-
- org.apache.activemq.ActiveMQMessageProducer
-
- All Implemented Interfaces:
MessageProducer,Closeable,Disposable,StatsCapable
- Direct Known Subclasses:
ActiveMQQueueSender,ActiveMQTopicPublisher
public class ActiveMQMessageProducer extends ActiveMQMessageProducerSupport implements StatsCapable, Disposable
A client uses aMessageProducerobject to send messages to a destination. AMessageProducerobject is created by passing aDestinationobject to a message-producer creation method supplied by a session.MessageProduceris the parent interface for all message producers.A client also has the option of creating a message producer without supplying a destination. In this case, a destination must be provided with every send operation. A typical use for this kind of message producer is to send replies to requests using the request's
JMSReplyTodestination.A client can specify a default delivery mode, priority, and time to live for messages sent by a message producer. It can also specify the delivery mode, priority, and time to live for an individual message.
A client can specify a time-to-live value in milliseconds for each message it sends. This value defines a message expiration time that is the sum of the message's time-to-live and the GMT when it is sent (for transacted sends, this is the time the client sends the message, not the time the transaction is committed).
A JMS provider should do its best to expire messages accurately; however, the JMS API does not define the accuracy provided.
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanclosedprotected ProducerInfoinfo-
Fields inherited from class org.apache.activemq.ActiveMQMessageProducerSupport
defaultDeliveryMode, defaultPriority, defaultTimeToLive, disableMessageID, disableMessageTimestamp, sendTimeout, session
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedActiveMQMessageProducer(ActiveMQSession session, ProducerId producerId, ActiveMQDestination destination, int sendTimeout)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcheckClosed()Check if the instance of this producer has been closed.voidclose()Closes the message producer.voiddispose()DestinationgetDestination()Gets the destination associated with thisMessageProducer.protected longgetMessageSequence()protected ProducerInfogetProducerInfo()JMSProducerStatsImplgetProducerStats()protected longgetStartTime()StatsImplgetStats()MessageTransformergetTransformer()voidonProducerAck(ProducerAck pa)voidsend(Destination destination, Message message, int deliveryMode, int priority, long timeToLive)Sends a message to a destination for an unidentified message producer, specifying delivery mode, priority and time to live.voidsend(Destination destination, Message message, int deliveryMode, int priority, long timeToLive, AsyncCallback onComplete)voidsend(Destination destination, Message message, AsyncCallback onComplete)voidsend(Message message, int deliveryMode, int priority, long timeToLive, AsyncCallback onComplete)voidsend(Message message, AsyncCallback onComplete)protected voidsetMessageSequence(AtomicLong messageSequence)protected voidsetProducerInfo(ProducerInfo info)voidsetTransformer(MessageTransformer transformer)Sets the transformer used to transform messages before they are sent on to the JMS busStringtoString()-
Methods inherited from class org.apache.activemq.ActiveMQMessageProducerSupport
getDeliveryMode, getDisableMessageID, getDisableMessageTimestamp, getPriority, getSendTimeout, getTimeToLive, send, send, send, setDeliveryMode, setDisableMessageID, setDisableMessageTimestamp, setPriority, setSendTimeout, setTimeToLive
-
-
-
-
Field Detail
-
info
protected ProducerInfo info
-
closed
protected boolean closed
-
-
Constructor Detail
-
ActiveMQMessageProducer
protected ActiveMQMessageProducer(ActiveMQSession session, ProducerId producerId, ActiveMQDestination destination, int sendTimeout) throws JMSException
- Throws:
JMSException
-
-
Method Detail
-
getStats
public StatsImpl getStats()
- Specified by:
getStatsin interfaceStatsCapable- Returns:
- the Stats for this object
-
getProducerStats
public JMSProducerStatsImpl getProducerStats()
-
getDestination
public Destination getDestination() throws JMSException
Gets the destination associated with thisMessageProducer.- Specified by:
getDestinationin interfaceMessageProducer- Returns:
- this producer's
Destination/ - Throws:
JMSException- if the JMS provider fails to close the producer due to some internal error.- Since:
- 1.1
-
close
public void close() throws JMSExceptionCloses the message producer.Since a provider may allocate some resources on behalf of a
MessageProduceroutside the Java virtual machine, clients should close them when they are not needed. Relying on garbage collection to eventually reclaim these resources may not be timely enough.- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceMessageProducer- Throws:
JMSException- if the JMS provider fails to close the producer due to some internal error.
-
dispose
public void dispose()
- Specified by:
disposein interfaceDisposable
-
checkClosed
protected void checkClosed() throws IllegalStateExceptionCheck if the instance of this producer has been closed.- Specified by:
checkClosedin classActiveMQMessageProducerSupport- Throws:
IllegalStateException
-
send
public void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException
Sends a message to a destination for an unidentified message producer, specifying delivery mode, priority and time to live.Typically, a message producer is assigned a destination at creation time; however, the JMS API also supports unidentified message producers, which require that the destination be supplied every time a message is sent.
- Specified by:
sendin interfaceMessageProducer- Parameters:
destination- the destination to send this message tomessage- the message to senddeliveryMode- the delivery mode to usepriority- the priority for this messagetimeToLive- the message's lifetime (in milliseconds)- Throws:
JMSException- if the JMS provider fails to send the message due to some internal error.UnsupportedOperationException- if an invalid destination is specified.InvalidDestinationException- if a client uses this method with an invalid destination.- Since:
- 1.1
- See Also:
Session.createProducer(javax.jms.Destination)
-
send
public void send(Message message, AsyncCallback onComplete) throws JMSException
- Throws:
JMSException
-
send
public void send(Destination destination, Message message, AsyncCallback onComplete) throws JMSException
- Throws:
JMSException
-
send
public void send(Message message, int deliveryMode, int priority, long timeToLive, AsyncCallback onComplete) throws JMSException
- Throws:
JMSException
-
send
public void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive, AsyncCallback onComplete) throws JMSException
- Throws:
JMSException
-
getTransformer
public MessageTransformer getTransformer()
-
setTransformer
public void setTransformer(MessageTransformer transformer)
Sets the transformer used to transform messages before they are sent on to the JMS bus
-
getStartTime
protected long getStartTime()
- Returns:
- the time in milli second when this object was created.
-
getMessageSequence
protected long getMessageSequence()
- Returns:
- Returns the messageSequence.
-
setMessageSequence
protected void setMessageSequence(AtomicLong messageSequence)
- Parameters:
messageSequence- The messageSequence to set.
-
getProducerInfo
protected ProducerInfo getProducerInfo()
- Returns:
- Returns the info.
-
setProducerInfo
protected void setProducerInfo(ProducerInfo info)
- Parameters:
info- The info to set
-
onProducerAck
public void onProducerAck(ProducerAck pa)
-
-