Issue 17: Key type definition
Issue 25: Creation of ProxyPushSupplier interfaces
Issue 93: Disconnected exception
Issue 633: connect_* operations in sections 4.5.(4,5,6,7)
Issue 640: Clarification needed for "at least one consumer" clause
Issue 17: Key type definition (events)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: TypedConsumerAdmin and TypedSupplierAdmin have operations that take a "Key" type (which identifies an interface), but do not specify the specific value needed to ID an interface.
Resolution:
Revised Text: Add the following comment to the "typedef string Key;" line of the IDL on
page 2-16:
typedef string Key; // Repository ID
Append the following after the first sentence of the first para on page 2-18:
The key specifies the repository ID of the supported interface.
Append the following after the first sentence of the second para on page 2-18:
The key specifies the repository ID of the interface used.
Append the following after the first sentence of the first para on page 2-19:
The key specifies the repository ID of the supported interface.
Append the following after the first sentence of the second para on page 2-19:
The key specifies the repository ID of the interface used.
Actions taken:
June 26, 1996: Received issue
February 27, 2001: closed issue
Discussion: TypedConsumerAdmin and TypedSupplierAdmin have operations that take a "Key" type (which identifies an interface), but do not specify the specific value needed to ID an interface.
Resolution:
The Key type is a the repository ID of the required interface, such as "IDL:myorg.com/MyModule/MyInterface:1.0
Issue 25: Creation of ProxyPushSupplier interfaces (events)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: Is it implied that obtain_push_supplier causes the creation/allocation of a ProxyPushSupplier interface?
Resolution: Rejected
Revised Text:
Actions taken:
July 1, 1996: Received issue
February 27, 2001: closed issue
Discussion: Yes, the obtain* operations on the *Admin objects are effectively factory operations for proxies.
Issue 93: Disconnected exception (events)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: The conditions for raising the Disconnected exception are not consistent with the state diagram on page 4-14.
Resolution:
Revised Text: Delete the following sentence from sections 2.1.1, 2.1.2, 2.1.3, and 2.1.4:
If the event communication has already been disconnected, the Disconnected exception is raised.
Actions taken:
August 28, 1996: Received issue
February 27, 2001: closed issue
Discussion: The specification talks about raising a Disconnected exception when a client invokes an operation on a destroyed object. This is impossible because such a call will raise OBJECT_NOT_EXIST.
Change specification to raise OBJECT_NOT_EXIST in these cases.
Issue 633: connect_* operations in sections 4.5.(4,5,6,7) (events)
Click here for this issue's archive.
Nature: Uncategorized
Severity:
Summary: Summary: The connect_* operations in these sections raise an AlreadyConnected exception if the client is already connected!? In some cases the channel will allow consumer to connect twice
Resolution: Rejected
Revised Text:
Actions taken:
July 24, 1997: received issue
February 27, 2001: closed issue
Discussion: Whether a proxy is connected is a property of the proxy, not of the connecting party. In particular, a client can connect to a particular proxy only once, whereupon the proxy enters the connected state; the only way out of the connected state is to destroy the proxy. If a client calls the connect operation on a particular proxy a seond time (or another client calls the connect operation on an already connected proxy), the AlreadyConnected exception is raised. This enforces the one-to-one relationship between consumers and producers.
Issue 640: Clarification needed for "at least one consumer" clause (events)
Click here for this issue's archive.
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.