Site icon techieswiki

TIBCO EMS Tutorial: Destination properties for queues and topics

In this post, we are going to discuss different destination properties available in TIBCO EMS server for queues and topic.  can set the properties directly in the topics.conf or queues.conf file or by means of the setprop or addprop command in the EMS Administration Tool.

addprop <type> <name> [properties]

Exclusive :

This property is only available for the queue.  But we can add this property to a global queue. We use this property to limit the consumer count. i.e. Only one consumer can read the message from this queue. No other consumers can receive messages from the queue. Instead, these additional consumers act as standby. if the primary consumer fails, the server selects one of the standby consumers as the new primary and begins delivering messages to it.

Expiration :

If an expiration property is set for a destination, the server retains the message for the length of time specified by the expiration property. Also, the server overrides the JMSExpiration value set by the producer in the message header with the value 0. We can set the expiration property for any queue and any topic using below command.

expiration=time[msec|sec|min|hour|day]

addprop queue TECH.QUEUE expiration=5sec

When a message expires it is either destroyed or if the JMS_TIBCO_PRESERVE_UNDELIVERED property on the message is set to true, the message is placed on the undelivered queue so it can be handled by a special consumer.

flowControl : 

The flowControl property specifies the maximum size of pending messages for the destination. If the size exceeds the maximum, the server will slow down the producers to the rate required by the message consumers. The best part of flowControl is that it never discards messages or generates errors back to the producer. We can set the size in KB, MB or GB. The flow_control parameter in tibemsd.conf file must be set to enabled before the value in this property is enforced by the server.

flowControl=size[KB|MB|GB]

global :

Messages destined for a topic or queue with the global property set are routed to the other servers that are participating in routing with this server. i.e this property is required only if we are routing the message to another EMS server.

maxbytes :

We can specify maxbytes in the same format as flowControl. For queues, maxbytes defines the maximum size that the queue can store. If the total size exceeds this limit, the server will reject new messages and Producer will get an error.

For Topics, maxbytes limits the maximum size that the topic can store for delivery to each durable or non-durable online subscriber on that topic. i.e if we set 1GB as maxbytes for the topic and if the topic has two durable the limit applies separately to each subscriber.

maxRedelivery : 

The maxRedelivery property specifies the number of attempts the server should make to deliver a message sent to a queue.

maxRedelivery=count

Where count is an integer between 2 and 255 that specifies the maximum number of times a message can be delivered to receivers.

prefetch :

This property used to limit the messages fetched from EMS queue by the receiver at a time. The consumer will not be able to fetch more than the number of messages specified by prefetch.

prefetch=number

secure :

When the secure property is enabled for a destination only who has the right permission to read or write will be able to receive or send.

store :

The store property determines where messages sent to this destination are stored. Messages can be stored in a database or file.

store=name

trace :

This property is used to trace the message details in the queue. Specifying trace without ‘body’ will give the details about message sequence, message ID, and message size. Specifying trace=body generates trace messages that include the message body.

trace = [body]

 

Exit mobile version