Thursday, December 13, 2007

EMS standards and durable subscribers

Java Message Service 1.1 (JMS) is a Java framework specification for messaging between applications. Sun Microsystems developed this specification, in conjunction with TIBCO and others, to supply a uniform messaging interface among enterprise applications.

The JMS framework (an interface specification, not an implementation) is designed to supply a basis for MOM development.

TIBCO Enterprise Message Service (Tibco EMS)implements JMS and integrates support for connecting other message services, such as TIBCO Rendezvous and TIBCO SmartSockets.

TIBCO Enterprise Message Service 4.4 is JMS compliant and has passed Sun Microsystem Technology Compatibility Kit (TCK) for Java Message Service 1.1 (JMS 1.1). Therefore, EMS 4.4 is compliant with the JMS 1.1 specification.

 

EMS Destination Features


TIBCO Enterprise Message Service allows you to configure destinations to enhance the functionality of each messaging model.

The EMS destination features include:

  • You can set a secure mode for access control at the queue or topic level, so that some destinations may require permission and others may not.
  • flowControl : You can set threshold limits for the amount of memory used by the EMS server to store messages for a topic or a queue and fine-tune the server’s response to when the threshold is exceeded.
  • You can route messages sent to destinations to other servers.
  • You can also create bridges between destinations of the same or different types to create a hybrid messaging model for your application. This can be useful if your application requires that you send the same message to both a topic and a queue. For more information on creating bridges between destinations and situations where this may be useful,
  • You can control the flow of messages to a destination. This is useful when message producers send messages much faster than message consumers can receive them.
  • You can exchange messages with other message services. Queues can receive TIBCO Rendezvous and TIBCO SmartSockets messages. Topics can either receive or send Rendezvous and TIBCO SmartSockets messages.
  • You can set queues to be exclusive or non-exclusive. Only one receiver can receive messages from an exclusive queue. More than one receiver can receive messages from non-exclusive queues.
  • You can specify a redelivery policy for queues. When messages must be redelivered, you can specify a property on the queue that determines the maximum number of times a message should be redelivered.
  • You can trace and log all messages passing through a destination.
  • You can include the user name of the message producer in the message.
  • Administrator operations can use wildcards in destination names. The wildcard destination name is the parent, and any names that match the wildcard destination name inherit the properties of the parent.
  • You can set the failsafe mode on a topic or queue to direct the server to write persistent messages to disk synchronously to guarantee messages are not lost under any circumstances.
  • You can specify that a consumer is to receive batches of messages in the background to improve performance. Alternatively, you can specify that queue receivers are to only receive one message at a time.

The EMS APIs allow you to create durable subscribers to ensure that messages are received, even if the message consumer is not currently running. Messages for durable subscriptions are stored on the server as long as durable subscribers exist for the topic, or until the message expiration time for the message has been reached, or until the storage limit has been reached for the topic. Durable subscribers can receive messages from a durable subscription even if the subscriber was not available when the message was originally delivered.

When an application restarts and recreates a durable subscriber with the same ID, all messages stored on the server for that topic are published to the durable subscriber

No comments: