Issue 640: Clarification needed for "at least one consumer" clause (events) Source: (, ) Nature: Uncategorized Severity: Summary: Summary: Section 4.4.4, p.4-13 last sentence:If channel responsible for pulling incoming events, then it will issue a request to get event.Or does it mean that event channel will not try to get event Resolution: Revised Text: Change the final paragraph of 2.2.4 to read: If an event channel has pull suppliers, it continues to pull events from the suppliers, regardless of whether any consumers are connected to the channel. Actions taken: July 30, 1997: received issue February 27, 2001: closed issue Discussion: The relevant para in the spec reads (page 2-6, section 2.2.4): If an event channel has at least one push-style consumer or at least one pending pull request, the event channel requires an event. If the event channel has pull suppliers, it will issue a request on a pull supplier to satisfy its requirement. The implication of this is that an event channel will pull events from a supplier only if there is at least one consumer connected to the channel. This is wrong -- if a channel were to do this, the supplier would no longer be shielded from its consumers because the supplier could tell the absence of consumers from the presence of consumers. In turn, that causes problems for the supplier. In particular, a supplier will typically choose the pull model if its event source is itself synchronous and blocking. This has the advantage that the supplier can simply put the pull operation from the channel to sleep until an event arrives from the supplier's event source. If a channel stops pulling events from the supplier when there are no consumers connected to the channel, the supplier ends up with buffering problems. (Where would the events go that the supplier obtains or generates but the channel refuses to pull?) In effect, such a channel would look like a broken channel to the supplier. End of Annotations:===== Return-Path: X-Sender: andrew@emerald.omg.org (Unverified) Date: Wed, 30 Jul 1997 19:04:43 -0400 To: juergen@omg.org From: Andrew Watson Subject: Please register this as an issue ...thanks Specification: Event Service Specification in COSS 1.0 Page/Section: Section 4.4.4, page 4-13. Summary: Clarification needed for "at least one consumer" clause Issue: The section ends with the sentence: If an event channel has at least one push-style consumer or at least one pending pull request, the event channel requires an event. If the event channel has pull suppliers, it will issue a request on a pull supplier to satisfy its requirement. The intended meaning is unclear. I imagine this is saying that an event channel which has consumers waiting for events is aware of the fact. If the channel is responsible for "pulling" incoming events (from pull suppliers) then it will issue a request in order to obtain an event. Is this meant to imply that an event channel with no consumers will NOT try to obtain events by pulling on suppliers? If so, shouldn't this be said directly? If not, what does it mean?