MessageProducer


Class

Declaration

class MessageProducer 

Purpose

Root behavior of all producers.

Remarks

Clients use message producers to send messages. A message producer object can store several parameters that affect the messages it sends.

This class lacks a constructor. Instead, clients create message producers using methods of a Session object; subclasses (such as QueueSession and TopicSession) each define methods to create corresponding producer subclasses.

Subclasses

QueueSender

TopicPublisher

(Sheet 1 of 3)

Member
Description
Properties
DeliveryMode
int {get; set;}
Delivery mode instructs the server concerning persistent storage.
Programs can use this property to define a default delivery mode for messages that this producer sends. Individual sending calls can override this default value.
For values, see the class DeliveryMode .
MsgDeliveryMode
MessageDeliveryMode {get; set;}
This parallel property accesses the same default value using enumerated values (instead of ordinary integers). We recommend it over the ordinary integer-valued accessor, because it enables .NET to do stronger type checking at compile time, which can enhance program reliability.
Destination
Destination {get;}
Each send call directs a message to a destination (queue or topic).
This property defines a default destination for messages that this producer sends. Individual sending calls can override this default value.
DisableMessageID
bool {get; set;}
Applications that do not require message IDs can reduce overhead costs by disabling IDs (set this property to true).
DisableMessageTimestamp
bool {get; set;}
Applications that do not require timestamps can reduce overhead costs by disabling timestamps (set this property to true).
Priority
int {get; set;}
Priority affects the order in which the server delivers messages to consumers (higher values first).
The JMS specification defines ten levels of priority value, from zero (lowest priority) to 9 (highest priority). The specification suggests that clients consider 0–4 as gradations of normal priority, and priorities 5–9 as gradations of expedited priority.
Programs can use this property to define a default priority for messages that this producer sends. Individual sending calls can override this default value.
TimeToLive
long {get; set;}
Time-to-live (in milliseconds) determines the expiration time of a message.
  • If the time-to-live is non-zero, the expiration is the sum of that time-to-live and the sending client’s current time (GMT). This rule applies even within sessions with transaction semantics—the timer begins with the send call, not the commit call.
  • If the time-to-live is zero, then expiration is also zero—indicating that the message never expires.
Programs can use this property to define a default time-to-live for messages that this producer sends. Individual sending calls can override this default value.
Whenever your application uses non-zero values for message expiration or time-to-live, you must ensure that clocks are synchronized among all the host computers that send and receive messages. Synchronize clocks to a tolerance that is a very small fraction of the smallest or time-to-live.

 

Method
Description
Page
93
94


TIBCO Enterprise Message Service™ .NET Reference
System Release 4.3, February 2006
Copyright © TIBCO Software Inc. All rights reserved
www.tibco.com