Destination Overview

Destination objects represent destinations within the EMS server—the queues and topics to which programs send messages, and from which they receive messages.

Queues deliver each message to exactly one consumer. Topics deliver each message to every subscriber. Queues and topics can be static, dynamic or temporary.

Aspect Static Dynamic Temporary
Purpose Static destinations let administrators configure EMS behavior at the enterprise level. Administrators define these administered objects, and client programs use them—relieving program developers and end users of the responsibility for correct configuration. Dynamic destinations give client programs the flexibility to define destinations as needed for short-term use. Temporary destinations are ideal for limited-scope uses, such as reply subjects.
Scope of Delivery Static destinations support concurrent use. That is, several client processes (and in several threads within a process) can create local objects denoting the destination, and consume messages from it. Dynamic destinations support concurrent use. That is, several client processes (and in several threads within a process) can create local objects denoting the destination, and consume messages from it. Temporary destinations support only local use. That is, only the client connection that created a temporary destination can consume messages from it.

However, servers connected by routes do exchange messages sent to temporary topics.

Creation Administrators create static destinations using EMS server administration tools or API. If the server configuration permits dynamic destinations, client programs can create one in two steps:
  1. Create a local destination object; see tibemsSession.
  2. Send a message to that destination, or create a consumer for it. Either of these actions automatically creates the destination in the server.
Client programs create temporary destinations; see tibemsSession.
Lookup Client programs lookup static destinations by name. Successful lookup returns a local object representation of the destination; see tibemsLookupContext_Lookup. Not applicable. Not applicable.
Duration A static destination remains in the server until an administrator explicitly deletes it. A dynamic destination remains in the server as long as at least one client actively uses it. The server automatically deletes it (at a convenient time) when all applicable conditions are true:
  • Topic or Queue  all client programs that access the destination have disconnected
  • Topic no offline durable subscribers exist for the topic
  • Queue no messages are stored in the queue
A temporary destination remains in the server either until the client that created it explicitly deletes it, or until the client disconnects from the server.