org.omg.CosNotification
Interface EventReliability


public interface EventReliability

There are a variety of delivery policies known in distributed systems, such as best-effort, at-least-once, at-most-once, and exactly-once. However most of these only make sense in a point-to-point, request-reply communication model. The Notification Service is by definition a point-to-multipoint delivery mechanism with no explicit reply mechanism. The Notification Service treats the reliability of specific events, and the reliability of the connections which provide a transport for events between clients of the notification channel and the channel, as separate issues, and thus defines two separate QoS properties to represent them: EventReliability and ConnectionReliability. Each of these properties can take on one of two possible numeric constant values: BestEffort or Persistent. The meanings associated with the settings of these properties are inter-related, and are thus defined together below. EventReliability=BestEffort & ConnectionReliability=BestEffort: No specific delivery guarantees are made. In the presence of failures, the event may or may not be received by each of the consumers, and a given consumer may receive the same event multiple times. EventReliability=BestEffort & ConnectionReliability=Persistent: The notification channel will maintain all information about its connected clients persistently, implying that connections will not be lost (logically) upon failure of the process within which the notification channel is executing. Any clients which connect to the channel using persistent object references may fail, but unless these object references raise an OBJECT_NOT_EXIST exception, the channel will continue to retry using them. Clients which then re-instantiate objects with these references will (logically) reconnect to their associated proxies. The channel will not, however, store any buffered events persistently. The implication of this combination is that upon restart from a failure of the notification channel server process, the channel will automatically re-establish connections to each of its clients, but will not attempt to retransmit any events that had been buffered at the time the failure occurred. EventReliability=Persistent & ConnectionRelability=BestEffort: This combination has no meaning and need not be supported by a conformant Notification Service implementation. EventReliability=Persisent & ConnectionReliability=Persistent: Each event is guaranteed to be delivered to all consumers registered to receive it at the time the event was delivered to the channel, within expiry limits. If the connection between the channel and a consumer is lost for any reason, the channel will persistently store any events destined for that consumer until either each event times out due to expiry limits, or the consumer once again becomes available and the channel is subsequently able to deliver the events to all registered consumers. In addition, upon restart from a failure the notification channel will automatically re-establish connections to all clients that were connected to it at the time the failure occurred. Note that the QoS properties related to reliability can be set at the channel, group, and proxy levels, but not on an individual event basis. A component at a lower level in the hierarchy may only override either property related to reliability by a value that represents the same or a lower reliability level. For example, it is not possible (or meaningful) to set EventReliability=Persistent at the group admin level, if at the channel level EventReliability has been set to BestEffort.


Field Summary
static java.lang.String value
          Constant value
 

Field Detail

value

static final java.lang.String value
Constant value

See Also:
Constant Field Values