This section describes items to be aware of when implementing the ENS Java API.
The current implementation of the Java API does not supply an initial provider interface.
JMS Topic Connection Factory and ENS Destination are called out explicitly. These are com.iplanet.ens.jms.EnsTopicConnFactory and com.iplanet.ens.jms.EnsTopic. ENS does not use JNDI to get the TopicConnectionFactory and Topic objects.
The notification is delivered as a javax.jms.TextMessage. The parameter/values of the ENS event reference are provided as property names to the TextMessage. The payload is provided as the data of the TextMessage.
JMSDeliveryMode is always set to NON_PERSISTENT (that is, no storing of message for future delivery).
JMSRedelivered is always set to false.
JMSMessageID is set to an internal id. Specifically it is not set to the SMTP MessageID in the header of the email message for Messaging Server.
The payload is always a javax.jms.TextMessage. It corresponds to the ENS payload.
JMSDestination is set to the full event reference (that is, it includes the parameter/values specific to this notification).
JMSCorrelationID - Set to an internal sequence number.
JMSTimestamp - Set to the time the message was sent.
For Messaging Server and iBiff, this corresponds to the timestamp parameter.
This is unused in Calendar Server.
JMSType — The type of notification.
For Messaging Server and iBiff, this corresponds to the evtType parameter.
This is unused in Calendar Server.
Additional properties:
Each parameter/value in the even reference becomes a property in the header. All property values are of type String.
Unused headers are: JMSExpiration, JMSpriority, JMSReplyTo.
MessageSelectors are not implemented.
JMS uses the concept of durable and non-durable subscribers. A durable subscriber is a feature where notifications are guaranteed to be sent to subscribers even when they are offline, or if something catastrophic occurs, such as the ENS server going down after receiving the notification from the publisher but before delivering it to the subscriber.
Non-durable subscribers are implemented.
You can also use durable subscribers, however, the full functionality of being a durable subscriber is not implemented.
This aspect of being a durable subscriber is implemented: the publisher is acknowledged only after the subscriber receives a message.
This aspect of being a durable subscriber is not implemented: the message is not persistent, and delivery is not made to offline subscribers (after they come back online). In particular, JMSRedelivered is always set to false.