Notes on Universal Messaging Support for JMS 2.0

Some of the Universal Messaging functions do not behave as described in the JMS 2.0 standard as follows:

  • JMSTimeStamp specifies the earliest time when a Universal Messaging server can deliver a message to a consumer.
  • Universal Messaging does not support JMSDeliveryTime on the consumer side.
  • The MessageProducer#send() method does not return an UnsupportedOperationException if a message producer specified a destination at creation time. Instead, messages are sent to the destination.
  • The client ID for a connection factory is mandatory. If you do not configure a client ID explicitly in the Enterprise Manager, Universal Messaging sets it automatically. After you configure a client ID, you cannot change it.

    For information about how to configure the client ID, see Configuring the Client ID of a Connection Factory.

  • Universal Messaging persists and retains shared non-durable subscriptions even when no active consumers are present on the subscription. To delete a shared non-durable subscription, you must explicitly invoke Session#unsubscribe().
  • The Session#createDurableSubscriber() method allows you to create multiple consumers on a shared durable subscription without returning a JMSException or JMSRuntimeException. You can create additional consumers that have the same name and client ID, if set, but a different topic or message selector.

For more information about the JMS 2.0 standard, see the Oracle JMS documentation.