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.
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