Class JmsMessageProducer

  • All Implemented Interfaces:
    jakarta.jms.MessageProducer, java.lang.AutoCloseable
    Direct Known Subclasses:
    JmsQueueSender, JmsTopicPublisher

    public class JmsMessageProducer
    extends java.lang.Object
    implements java.lang.AutoCloseable, jakarta.jms.MessageProducer
    Implementation of a JMS MessageProducer
    • Field Detail

      • anonymousProducer

        protected final boolean anonymousProducer
      • deliveryDelay

        protected long deliveryDelay
      • deliveryMode

        protected int deliveryMode
      • priority

        protected int priority
      • timeToLive

        protected long timeToLive
      • closed

        protected final java.util.concurrent.atomic.AtomicBoolean closed
      • disableMessageId

        protected boolean disableMessageId
      • disableTimestamp

        protected boolean disableTimestamp
      • messageSequence

        protected final java.util.concurrent.atomic.AtomicLong messageSequence
      • failureCause

        protected final java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> failureCause
    • Constructor Detail

      • JmsMessageProducer

        protected JmsMessageProducer​(JmsProducerId producerId,
                                     JmsSession session,
                                     JmsDestination destination)
                              throws jakarta.jms.JMSException
        Throws:
        jakarta.jms.JMSException
    • Method Detail

      • close

        public void close()
                   throws jakarta.jms.JMSException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • doClose

        protected void doClose()
                        throws jakarta.jms.JMSException
        Called to initiate shutdown of Producer resources and request that the remote peer remove the registered producer.
        Throws:
        jakarta.jms.JMSException - if an internal error occurs during the close operation.
      • shutdown

        protected void shutdown()
                         throws jakarta.jms.JMSException
        Called to release all producer resources without requiring a destroy request to be sent to the remote peer. This is most commonly needed when the parent Session is closing.
        Throws:
        jakarta.jms.JMSException - if an internal error occurs during the shutdown operation.
      • shutdown

        protected void shutdown​(java.lang.Throwable cause)
                         throws jakarta.jms.JMSException
        Throws:
        jakarta.jms.JMSException
      • getDeliveryDelay

        public long getDeliveryDelay()
                              throws jakarta.jms.JMSException
        Specified by:
        getDeliveryDelay in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • getDeliveryMode

        public int getDeliveryMode()
                            throws jakarta.jms.JMSException
        Specified by:
        getDeliveryMode in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • getDestination

        public jakarta.jms.Destination getDestination()
                                               throws jakarta.jms.JMSException
        Specified by:
        getDestination in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • getDisableMessageID

        public boolean getDisableMessageID()
                                    throws jakarta.jms.JMSException
        Specified by:
        getDisableMessageID in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • getDisableMessageTimestamp

        public boolean getDisableMessageTimestamp()
                                           throws jakarta.jms.JMSException
        Specified by:
        getDisableMessageTimestamp in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • getPriority

        public int getPriority()
                        throws jakarta.jms.JMSException
        Specified by:
        getPriority in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • getTimeToLive

        public long getTimeToLive()
                           throws jakarta.jms.JMSException
        Specified by:
        getTimeToLive in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • send

        public void send​(jakarta.jms.Message message)
                  throws jakarta.jms.JMSException
        Specified by:
        send in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • send

        public void send​(jakarta.jms.Message message,
                         int deliveryMode,
                         int priority,
                         long timeToLive)
                  throws jakarta.jms.JMSException
        Specified by:
        send in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • send

        public void send​(jakarta.jms.Destination destination,
                         jakarta.jms.Message message)
                  throws jakarta.jms.JMSException
        Specified by:
        send in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • send

        public void send​(jakarta.jms.Destination destination,
                         jakarta.jms.Message message,
                         int deliveryMode,
                         int priority,
                         long timeToLive)
                  throws jakarta.jms.JMSException
        Specified by:
        send in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • send

        public void send​(jakarta.jms.Message message,
                         jakarta.jms.CompletionListener listener)
                  throws jakarta.jms.JMSException
        Specified by:
        send in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • send

        public void send​(jakarta.jms.Message message,
                         int deliveryMode,
                         int priority,
                         long timeToLive,
                         jakarta.jms.CompletionListener listener)
                  throws jakarta.jms.JMSException
        Specified by:
        send in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • send

        public void send​(jakarta.jms.Destination destination,
                         jakarta.jms.Message message,
                         jakarta.jms.CompletionListener listener)
                  throws jakarta.jms.JMSException
        Specified by:
        send in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • send

        public void send​(jakarta.jms.Destination destination,
                         jakarta.jms.Message message,
                         int deliveryMode,
                         int priority,
                         long timeToLive,
                         jakarta.jms.CompletionListener listener)
                  throws jakarta.jms.JMSException
        Specified by:
        send in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • setDeliveryDelay

        public void setDeliveryDelay​(long deliveryDelay)
                              throws jakarta.jms.JMSException
        Specified by:
        setDeliveryDelay in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • setDeliveryMode

        public void setDeliveryMode​(int deliveryMode)
                             throws jakarta.jms.JMSException
        Specified by:
        setDeliveryMode in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • setDisableMessageID

        public void setDisableMessageID​(boolean value)
                                 throws jakarta.jms.JMSException
        Specified by:
        setDisableMessageID in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • setDisableMessageTimestamp

        public void setDisableMessageTimestamp​(boolean value)
                                        throws jakarta.jms.JMSException
        Specified by:
        setDisableMessageTimestamp in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • setPriority

        public void setPriority​(int defaultPriority)
                         throws jakarta.jms.JMSException
        Specified by:
        setPriority in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • setTimeToLive

        public void setTimeToLive​(long timeToLive)
                           throws jakarta.jms.JMSException
        Specified by:
        setTimeToLive in interface jakarta.jms.MessageProducer
        Throws:
        jakarta.jms.JMSException
      • getProducerId

        protected JmsProducerId getProducerId()
        Returns:
        the producer's assigned JmsProducerId.
      • getNextMessageSequence

        protected long getNextMessageSequence()
        Returns:
        the next logical sequence for a Message sent from this Producer.
      • checkClosed

        protected void checkClosed()
                            throws jakarta.jms.IllegalStateException
        Throws:
        jakarta.jms.IllegalStateException
      • isPresettled

        protected boolean isPresettled()
      • isAnonymous

        protected boolean isAnonymous()
      • onConnectionInterrupted

        protected void onConnectionInterrupted()
      • onConnectionRecovery

        protected void onConnectionRecovery​(Provider provider)
                                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • onConnectionRecovered

        protected void onConnectionRecovered​(Provider provider)
                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • onConnectionRestored

        protected void onConnectionRestored()