Tuesday 8 March 2016

TIBCO EMS| EMS Destination Properties

EMS Destination Properties

Destination Overview:

Destinations for messages can be either Topics or Queues. A destination can be created statically in the server configuration files, or dynamically by a client application.
Servers connected by routes exchange messages sent to temporary topics. As a result, temporary topics are ideal destinations for reply messages in request/reply interactions.
There are three types of Destinations, they are:
1.      Static Destinations
2.      Dynamic Destinations
3.      Temporary Destinations


Secure
When the secure property is enabled for a destination, it instructs the server to check user permissions whenever a user attempts to perform an operation on that destination. You can set secure using the form:
secure
When server authorization is enabled, the server checks user names and password of all connections without exceptions. However, operations on destinations, such as sending a message or receiving a message, are not verified unless the destination has enabled the secure property on the destination.
The secure property is independent of SSL-level security. The secure property controls only basic authentication and permission verification. It does not affect the security of communication between clients and server.
When a destination does not have the secure property set, any authenticated user can perform any actions on that topic or queue.
Creating Secure Destinations:
By default, all authenticated EMS users have permissions to perform any action on any topic or queue. You can set the secure property on a topic or queue and then use the grant topic or grant queue command to specify which users and/or groups are allowed to perform which actions on the destination.
The secure property requires that you enable the authorization property on the EMS server.
For example, to create a secure queue, named myQueue, to which only users "joe" and "eric" can send messages and "sally" can receive messages, in the EMS Administration Tool, enter:
set server authorization=enabled
create queue myQueue secure
grant queue myQueue joe send
grant queue myQueue eric send
grant queue myQueue sally receive
flowControl
The flowControl property specifies the target maximum size the server can use to store pending messages for the destination. Should the number of messages exceed the maximum; the server will slow down the producers to the rate required by the message consumers. This is useful when message producers send messages much more quickly than message consumers can consume them. Unlike the behavior established by the overflowPolicy property, flowControl never discards messages or generates errors back to producer.
You can set flowControl using the form:
flowControl=size [KB|MB|GB]
where size is the maximum number of bytes of storage for pending messages of the destination. If you specify the flowControl property without a value, the target maximum is set to 256KB.
Maxbytes
For queues, maxbytes defines the maximum size (in bytes) that the queue can store, summed over all messages in the queue. Should this limit be exceeded, messages will be rejected by the server and the message producer sends calls will return an error
maxmsgs
Topics and queues can specify the maxmsgs property in the form:
maxmsgs=value
where value defines the maximum number of messages that can be waiting in a queue. When adding a message would exceed this limit, the server does not accept the message into storage, and the message producer’s send call returns an error
overflowPolicy
Topics and queues can specify the overflowPolicy property to change the effect of exceeding the message capacity established by either maxbytes or maxmsgs.
Set the overflowPolicy using the form:
overflowPolicy=defauld|discardOld|rejectIncoming
If overflowPolicy is not set, then the policy is default.
maxRedelivery
The maxRedelivery property specifies the number of attempts the server should make to deliver a message sent to a queue.
Set maxRedelivery using the form: 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. A value of zero disables maxRedelivery, so there is no maximum.
Undelivered Message Queue
If a message expires or has exceeded the value specified by the maxRedelivery property on a queue, the server checks the message’s JMS_TIBCO_PRESERVE_UNDELIVERED property.
 If JMS_TIBCO_PRESERVE_UNDELIVERED is set to true, the server moves the message to the undelivered message queue, $sys.undelivered. This undelivered message queue is a system queue that is always present and cannot be deleted. If JMS_TIBCO_PRESERVE_UNDELIVERED is set to false, the message will be deleted by the server.
Prefetch
Prefetch is a fetch batch value indicates how many messages will be send by the server to client in one time - and also indicates how many might be rollbacked when one of them is not confirmed.
Quoting doc: "To reduce waiting time for client programs, the message consumer can prefetch messages—that is, fetch a batch of messages from the server, and hold them for client code to accept, one by one.
You can set prefetch using the form:
prefetch=value
2 or more: The message consumer automatically fetches messages from the server. The message consumer never fetches more than the number of messages specified by value.
1: The message consumer automatically fetches messages from the server—initiating fetch only when it does not currently hold a message.
None:  Disables automatic fetch. That is, the message consumer initiates fetch only when the client calls receive—either an explicit synchronous call, or an implicit call (in an asynchronous consumer). This value cannot be used with topics or global queues.
0: The destination inherits the prefetch value from a parent destination with a matching name. If it has no parent, or no destination in the parent chain sets a value for prefetch, then the default value is 5 queues and 64 for topics. When a destination does not set any value for prefetch, then the default value is 0 (zero; that is, inherit the prefetch value).
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. You can set global using the form: global

No comments:

Post a Comment