Issue 1423: Add destroy operations
Issue 1424: Fix existing bug in CosTypedNotifyChannelAdmin IDL
Issue 1425: Define new Service ID
Issue 1426: Make section 2.10 consistent with current CORBA 2.1
Issue 1427: Clean up description of QoS properties
Issue 1499: Error in Event Type Repos IDL in Notification
Issue 1524: <CompEsc> lexical token issue
Issue 1580: We need default value for DiscardPolicy
Issue 1584: Reference to MaxQueueLength--QoS issue for Notification
Issue 1618: subscription_change issue
Issue 1638: Filter grammar problem
Issue 1660: No way to "quench" to event style supplier
Issue 1680: Use of lexical components
Issue 1681: Syntactic category <Factor> includes <Ident> and \<Ident>...Why?
Issue 1682: Section 2.4.6 : positional notation wrt to unions
Issue 1684: Constraint Language issue
Issue 1706: comment_*() operations needed in CosNotifyComm Interface
Issue 1773: No way to "quench" typed event style clients...
Issue 1774: ProxyConsumer and ProxySupplier need readonly attributes to identify type.
Issue 1791: Move name up to PropertyErorr and create a NamedPropertyRange struct
Issue 1792: Remove the use of CosTrading property types
Issue 1793: Dependance on CosTrading
Issue 2008: Removal of explicit Transactional interfaces
Issue 2113: Editorial issue
Issue 2114: Cardinalities for "imports" and "inherits" wrong
Issue 2120: Suspension of connections
Issue 2121: Another issue related to suspend/resume connection
Issue 2157: .Clarification of pull_structured_events definition
Issue 2203: Notification Constraint language problem
Issue 2211: The term name-value pair is not well defined
Issue 2212: Footnote on page 34
Issue 2213: The section 2.4.5
Issue 2216: Issue with the algorithm for evaluating $<variable> expressions
Issue 2217: Not all references to event types have been updated
Issue 2219: Text on p. 54 describing applicability of EvenReliability QoS out of date
Issue 2220: Explicit statement missing in contraint grammar
Issue 2229: Inconsistency on p 54
Issue 2297: Unnecessary restriction defined on Mapping Filters
Issue 2433: CosNotification -- MaxEventsPerConsumer = 0 for infinity?
Issue 2434: Default values for PacingInterval and MaximumBatchSize QoS properties?
Issue 2448: EventType IDL typos
Issue 2554: Filter evaluation in pull mode
Issue 2555: Semantics of Disconnected exception
Issue 2652: Modify the DiscardPolicy text, paragraph 1 page 56
Issue 2653: To add to "Reliablity" text, Page 54 after paragraph 3.
Issue 2654: Modify RejectNewEvents description, paragraph 8 page 56
Issue 2655: Modify paragraph 6, page 52
Issue 2662: CosNotifyChannelAdmin module: typed proxies not defined in ProxyType enum
Issue 2712: TimeBase::UtcT where TimeBase::TimeT is needed
Issue 2713: Pull Methods on Sequence Suppliers
Issue 2714: Problem with Sequence Pull Model
Issue 2740: Clarify Handling of Priority and Timeout
Issue 2743: Semantics of Timeout Value
Issue 9079: MaxEventsPerConsumer
Issue 1423: Add destroy operations (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: 1) We should add "destroy" operations for the ConsumerAdmin and
SupplierAdmin interfaces defined in CosNotifyChannelAdmin
Resolution:
Revised Text:
Actions taken:
May 28, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1424: Fix existing bug in CosTypedNotifyChannelAdmin IDL (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: 2) We need to fix the existing bug in the CosTypedNotifyChannelAdmin
IDL, caused by the TypedEventChannel interface defined there inheriting
from both CosNotifyChannelAdmin::EventChannel, and
CosTypedEventChannelAdmin::TypedEventChannel. Because the former
also inherits CosEventChannelAdmin::EventChannel,
CosTypedNotifyChannelAdmin::TypedEventChannel is inheriting from
multiple interfaces that each define "for_consumers" and "for_suppliers"
operations, returning values that are scoped differently. This is an
IDL bug that must be resolved.
Resolution:
Revised Text: :EventChannel, and
Actions taken:
May 28, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1425: Define new Service ID (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: 3) We need to define a new Service ID that can be returned by
"resolve_initial_references" for the factory for typed notification
channels
Resolution:
Revised Text:
Actions taken:
May 28, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1426: Make section 2.10 consistent with current CORBA 2.1 (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: 4) In section 2.10 we describe how to modify CORBA 2.1 in order to
accommodate our new ID (should be IDs, see #3) that can be
returned by "resolve_initial_references". There, we list
"NamingService" as one of the valid IDs. But in CORBA 2.1, this is
currently "NameService". We should section 2.10 consistent with the
current CORBA 2.1 in this way.
Resolution:
Revised Text:
Actions taken:
May 28, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1427: Clean up description of QoS properties (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: 5) In general we need to clean up the description of QoS properties to
clearly distinguish which properties are valid in the optional header
field of a structured event, and which can be set on proxies, admins,
or channels. Certain properties only make sense on a per-message basis,
and others make no sense on a per-message basis. Currently the spec is
very unclear on this distinction, and we should fix this.
Resolution:
Revised Text:
Actions taken:
May 28, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1499: Error in Event Type Repos IDL in Notification (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: someone looking at the event type repository IDL in the Notification
Service Spec has found a bug in the generated IDL from the MOF model:
> 3. In EventTypeRepositoryClass.create_event_type_repository,
> why is the parameter a string and not a StringSet?
You are correct. It"s should be StringSet. There was a bug in the
prototype that generated the IDL used in the Event Notification.
Resolution:
Revised Text:
Actions taken:
June 4, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1524: <CompEsc> lexical token issue (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: The <CompEsc> lexical token for the default constraint grammar is
inadvertantly not defined along with the other newly introduced lexical
token. A definition of this token should be added where the other new
tokens are defined.
Resolution:
Revised Text:
Actions taken:
June 12, 1998: received issue
February 23, 1999: closed issue
Discussion: Add definition of CompEsc to section 2.4.
Issue 1580: We need default value for DiscardPolicy (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: In the spec we define the DiscardPolicy QoS property, and the various
settings it can take on. But, we don"t define what the behavior is
when the property is not set, and we don"t define a value of NONE that
can be used to disable the DiscardPolicy after it has been set.
My proposal is to define a new value, say NoOrder, which is the default
value and means that DiscardPolicy is disabled, so attempts to send events
to the channel when the buffer is full will fail, rather than have events
already in the buffer be discarded.
As a related issue, we may also want to define a DiscardInterval, so that
if DiscardPolicy does kick in, the algorithm can select more than one
event from the buffer to discard. This would prevent the channel from
thrashing between executing its discard algorithm, and receiving new events.
I"d be interested in comments about this idea, in addition to the proposal
to define the NoOrder value for DiscardPolicy.
Resolution:
Revised Text:
Actions taken:
June 25, 1998: revceived issue
February 23, 1999: closed issue
Discussion:
Issue 1584: Reference to MaxQueueLength--QoS issue for Notification (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: I cannot seem to find any refernce to MaxQueueLength
other than in IDL and there is no comment in the IDL explaining this
parameter. This whole area seems to be under-specified. It is certainly
not in the "Discard Policy" section where it should be.
Resolution:
Revised Text:
Actions taken:
June 26, 1998: received issue
February 23, 1999: closed issue
Discussion: Through discussion of this issue, it was agreed that the
Issue 1618: subscription_change issue (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: The text describing the behaviour of implementations calling
subscription_change on their suppliers:
Suppliers that are not interested in the event types currently
subscribed to will not invoke obtain_subscription_types, and will
raise the NO_IMPLEMENT exception in their implementation of the
subscription_change operation.
The mechanism (raising NO_IMPLEMENT) is crude, and the continuing
behaviour of the channel is unspecified; i.e. should the channel
always call subscription_change and just put up with the exception? I
should think not. However, should the channel assume that this
supplier will never be interested in subscriptions ever again? Perhaps
not. What if the supplier raises NO_IMPLEMENT, and then later calls
obtain_subscription_types - does this indicate that it is now
interested in subscription changes?
Resolution:
Revised Text:
Actions taken:
June 30, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1638: Filter grammar problem (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: The nonterminal symbol <CompEsc> is undefined on page 50.
I suspect it should simply be a terminal "\" (consistent with the use
of "+", "-" and "\\" in other parts of the grammar.
Resolution:
Revised Text:
Actions taken:
July 7, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1660: No way to "quench" to event style supplier (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: In the CosNotifyComm module, we define new client interfaces for clients
that supply and consumer structured events and sequence of structured events.
In the CosNotifyChannelAdmin module, we define different proxy interfaces
for clients that deal with Anys, structured events, and sequences of
structured events. For the proxies that deal with Anys, we rely on
Event tyle clients to connect to them. In other words, the input parameter
to the "connect_*" operations defined on the proxies provided for clients
that deal with Anys are of a type defined in the CosEventComm module. This
is because we don"t redefine Notification-specific interfaces for clients
that deal with Anys.
It has just occurred to us that this makes it impossible to propagate
"subscription_change" requests to clients that deal with Anys. This is
because such clients are defined in CosEventComm, and do not support
the NotifySubscribe or NotifyPublish interfaces.
Resolution:
Revised Text:
Actions taken:
July 10, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1680: Use of lexical components (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: Firstly, due to the use of lexical components such as "and", "or",
"not", etc., the grammar is not context free. A backslash (I assume the
syntactic category <CompEsc> is a backslash) is used to distinguish
runtime variables from symbol names, and this is enough to ensure that
any symbol subsequent to "\" is treated as an <Ident>.
However, the <CompDot> lexical category doesn"t provide for an escaped
<Ident>. However, I believe the following is legal IDL:
struct A {
long and;
};
This leads to a situation where a constraint such as:
$.A.and == 34
must be regarded as syntactically incorrect for the grammar to remain
context free.
I believe that the issue can be resolved without ambiguity by extending
<CompDot> to allow a backslash followed by a <CompIdent>.
Resolution:
Revised Text:
Actions taken:
July 15, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1681: Syntactic category <Factor> includes <Ident> and \<Ident>...Why? (notif_service-rtf)
Click here for this issue's archive.
Nature: Clarification
Severity:
Summary: Summary: Secondly, I"d like to have something clarified, if possible. The
syntactic category <Factor> includes <Ident> and \ <Ident>. What is the
reason for this? It seems to me that the only use for <Ident> in this
context is as a check for the existence of a runtime variable. $var is
used to denote the value of runtime variable var. However the "exist"
operator is used for this.
Would the semantics be any clearer if "$" was not used for runtime
variables at all? In this case a standalone <Ident> (not part of the
current event) would denote a variable.
Resolution:
Revised Text:
Actions taken:
July 15, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1682: Section 2.4.6 : positional notation wrt to unions (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: In section 2.4.6 of the Notification Spec, there"s a discussion about
positional notation wrt to unions. Examples are given using the
constraints of the form $.(nn). e.g.,
$.(3).2 < 128
However, this isn"t syntactically correct. the Compdot syntactic
category is given as:
<CompDot> := <CompIdent> | <CompPos> | ** the "_" literals **
<CompIdent> must begin with an <Ident> which must begin with an
aphabetic char.
<CompPos> must begin with a digit.
<Component> may be empty, in which case an operator like +,-, and, or,
etc will be expected, but not a "(".
The same mistake is made throughout Section 2.4.6, in the fifth,
sixth, and seventh paragraphs. There are also some comments such as "
.. using run time variables as "$(3).2 < 128" .." in the fifth
paragraph that don"t make sense. (That example is wrong because a
runtime variables must be introduced by $<Ident>.)
Resolution:
Revised Text:
Actions taken:
July 15, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1684: Constraint Language issue (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: Because the constraint language is inherited from the Trader specification, we
have these categories:
<expr_in> := <expr_twiddle> in <Ident> | <expr_twiddle>
<expr_twiddle> := <expr> ~ <expr> | <expr>
It seems that the point of the "in" operator is to determine whether the LHE
is in the RHE where the RHE is a sequence. However, there"s no way to access
the current event since the RHE is only allowed to be an Ident, not "$"
<Component>. It appears that the RHE could only be an unstructured runtime
variable in practice. If this is not the case, how is it supposed to work?
In addition, the <preference> syntactic category makes no sense. I assume that
it is not be supported. This is perhaps a small point, but I can"t find a
reference to it.
Resolution:
Revised Text:
Actions taken:
July 15, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1706: comment_*() operations needed in CosNotifyComm Interface (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: One of the missing pieces in the Notification Service is that
connect_*() operations are needed on the CosNotifyComm interfaces. That
way a third party can connect the end points and channel together. With
the current spec the end points have to connect them self to the channel
or a third party needs to know the proprietary extensions of the
endpoint to set up the connection. The endpoints that ALWAYS connect
themself to the channel could throw the NO_IMPLEMENT exception.
Resolution:
Revised Text:
Actions taken:
July 20, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1773: No way to "quench" typed event style clients... (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: Similar to the problem described in Issue 1660 for Any-style clients,
there is no way to pass quench or offer information to typed event style
clients. This is because typed event style clients are either defined
in CosEventComm or CosTypedEventComm, depending on the client type, and
these interfaces do not inherit NotifyPublish or NotifySubscribe.
Resolution:
Revised Text:
Actions taken:
August 4, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1774: ProxyConsumer and ProxySupplier need readonly attributes to identify type. (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: Currently it is possible to obtain a list of all ProxyConsumers being
managed by a SupplierAdmin, and a list of all ProxySuppliers being managed
by a ConsumerAdmin. But, given an entry on either one of these lists,
the only way to determine its actual type is to try narrowing it to the
Any, Structured, or Sequence version of the Proxy. If the ProxyConsumer
and ProxySupplier interfaces maintained a readonly attribute that
distinguishes each Proxy"s type, however, it would be easier for
clients to walk through a list of Proxies obtained by performing
a "get" operation on an Admin, and determine which type of Proxy each
entry is.
Resolution:
Revised Text:
Actions taken:
August 4, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1791: Move name up to PropertyErorr and create a NamedPropertyRange struct (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: I have an issue which CORBA Notification specification in the area of
Properties.
In CosNotification.idl PropertyError the name of the property in error
is burried the PropertyRange. This seems to have been done for reuse in
the PropertyRangeSeq. It is confusing and likely to cause error. I
suggest we move name up to PropertyErorr and create a NamedPropertyRange
struct.
Resolution:
Revised Text:
Actions taken:
August 10, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1792: Remove the use of CosTrading property types (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: [the following is raised as a separate issue] Lets remove the use of CosTrading property types.
This is an unnecessary dependancy for such simple types.
Resolution:
Revised Text:
Actions taken:
August 10, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 1793: Dependance on CosTrading (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: We re-use the type CosTrading::PropertySeq in the Notification IDL,
and this is the only this that"s re-used from this module. The result
is that code in C++ and Java implementing the entire CosTrading IDL
stubs in linked or loaded into a running Notification Service. This
creates an unacceptable bloat for such a trivial re-use.
Resolution:
Revised Text:
Actions taken:
August 10, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 2008: Removal of explicit Transactional interfaces (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: As a result of the deprecation of the TransactionalObject interface
defined by the recently adopted CORBA Messaging specification, it is no
longer necessary for the Notification Service to explicitly define
transactional client and proxy interfaces. Instead, descriptive text should
be added to Chapter 2 explaining how an implementation of Notification
should support transactional event tranmission.
Resolution:
Revised Text:
Actions taken:
September 28, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 2113: Editorial issue (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: QoSAdmin::get_qos and QoSAdmin::set_qos are spelled get_QoS and set_QoS in
paras 3.1.4.1 and 3.1.4.2.
Resolution:
Revised Text:
Actions taken:
October 21, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 2114: Cardinalities for "imports" and "inherits" wrong (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: The UML diagram in appendix A of the Notification Service has the
cardinalities for "imports" and "inherits" associations the wrong way
around. This makes it inconsistent with the description text and MODL.
Proposed resolution: The "imports" association should be [0..*] to
[0..*], and "inherits" should be 1 to [0..*].
Resolution:
Revised Text:
Actions taken:
October 21, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 2120: Suspension of connections (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: This issue relates to the ability provided in Notification Service
ProxyPushSuppliers for a consumer to suspend a connection to the channel
(stop the channel pushing events to it) which is unavailable to the
other passive clients of the service - pull suppliers.
The problem arises because, without the ability for a pull supplier to
suspend a connection, its only choices are
(a) to block the return of a pull() call until it is able to
supply an event - resulting in some ORB-dependent timeout on
the call, or a blocked thread in the channel.
(b) to reply to many unnecessary try_pull() calls with a FALSE
result - expecting that the channel will use some sort of
backoff algorithm.
(c) to disconnect from the proxy and obtain a new one when it is
ready to supply events again - causing significant overhead
for both itself and the channel.
I suspect that we only provided one set of suspend/resume operations
because the only circumatance we considered in the design was data
overrun at consumer clients. We ignored the traditional symmetry, and
neglected "under-run" and its less disasterous, but still significant
problems.
Resolution:
Revised Text:
Actions taken:
October 27, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 2121: Another issue related to suspend/resume connection (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: I would like to register another issue related to suspend_connection
and resume_connection. I feel a new exception should be defined for each
of these operations, to cover the case in which a client invokes one
of these operations on a Proxy which has not yet been connected to by
a client. Currently, it is possible for a client to invoke one of these
operations on a Proxy that is not connected to a client, but there is
no appropriate exception to raise.
Resolution:
Revised Text:
Actions taken:
October 27, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 2157: .Clarification of pull_structured_events definition (notif_service-rtf)
Click here for this issue's archive.
Nature: Clarification
Severity:
Summary: Summary: Section 3.3.13.1 pull_structured_events
"...the amount of time a supplier will accumulate events into the sequence
before transmitting it...are controlled bu QoS property settings as described
in section 2.5.5."
Followed in the next paragraph by:
"...Note that the operation will block until there is a sequence available
to return."
Proposed resolution:
The final sentence quoted should read:
" Note that the operation will block until there is a sequence available
to return unless overridden by QoS pacing policies."
Alternatively the final sentence could be deleted..
Resolution:
Revised Text:
Actions taken:
November 2, 1998: received issue
February 23, 1999: closed issue
Discussion:
Issue 2203: Notification Constraint language problem (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: Section 2.4.3 (final bullet) says:
* When a boolean operand is used in an arithmetic operation, it is
treated as weakly-typed CORBA::Long.
This is semantically very dubious. What value is used for TRUE and
FALSE? 1 and 0 perhaps? This results in "TRUE + TRUE == 2" producing a
match and "TRUE / FALSE" producing a divide by zero error!
Resolution: Added text at end of 3rd bullet from top of new page 45
Revised Text:
Actions taken:
November 11, 1998: received issue
November 16, 1999: closed issue
Discussion: Synopsis: DSTC questioned the final bullet in section 2.4.3 which states that,
with respect to the constraint grammar, boolean values are treated
as weakly typed CORBA::Longs when used in arithmetic operations.
In their message raising this issue, DSTC complained that this is
semantically weak, although they added that some members of DSTC
actually like this feature.
DSTC proposed two alternative solutions to this issues:
1) Get rid of the feature by changing the bullet to state that usage
of boolean values in an arithmetic operation is a type mismatch
error, causing whatever "match" operation within which they are
used to fail
2) Clarify that the value of TRUE and FALSE, when used in arithmetic
operations, correspond to 1 and 0 respectively
Disposition: We at NEC like this feature, and feel it is both required and
standard with the way CORBA treats boolean values. We feel it's
required because it allows the constraint grammar to handle
expressions that combine the results of boolean comparisons,
which we feel is typically expected of a constraint grammar
(e.g., ($.fruit = apples) + ($.color = red) +
($.kind = macintosh) > 2)
Furthermore, while we have no fundamental opposition to explicitly
stating that TRUE=1 and FALSE=0, we don't necessarily feel it's
necessary because section 12.3.1 of CORBA alread states that
"Boolean values are encoded as single octets, where TRUE is the
value 1, and FALSE is 0." Essentially, we feel CORBA already
defines TRUE to be 1 and FALSE to be 0, however we are not
opposed to adding such a statement into Notification if folks
feel it's necessary.
VOTE: This vote is being subdivided into 2203a and 2203b. Voting YES on
2203a means to accept option 1) described above. Voting YES on
2203b means to accept option 2) described above. Voting NO means to
do nothing. It is invalid to vote YES on both 2203a and 2203b.
NOTE: Only 2203b passed
Issue 2211: The term name-value pair is not well defined (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: 1) The term name-value pair is not well defined in the Notification
document.
Suggested resolution:
We need to decide as a group to explicitly state that either only
CosNotification::PropertySeq is supported (as well as structutally
equivalent types only when IIOP messages elide member naming or IR
info), OR that any structurally equivalent type is supported.
I would favour the former - as it allows implementers to rely on the
TypeCode::equal() operation to do comparisons portably rather
than doing explicit traversals of the typecode.
Resolution: Added text to 2nd paragraph of section 2.5.2
Revised Text:
Actions taken:
November 16, 1998: received issue
November 16, 1999: closed issue
Discussion: Synopsis: DSTC feels that the term "name-value pair" is used too freely
throughout the spec without a clear definition of what's meant by
it. They suggested that we should either explicitly state that
either CosNotification::PropertySeq must be used wherever a
name-value pair is called for (except where IIOP messages elide
member naming or IR info, in which case structurally equivalent types
may be used instead), or that any structurally equivalent type can
always be substituted for a CosNotification::PropertySeq. DSTC
mentioned that their preference is the former, as it allows for
explicit, portable type comparisons rather than requiring typecode
traversal to do type checking.
Disposition: I have no objection to DSTC's first proposed resolution,
except that I do not understand the parenthetical part, which
I abstracted from DSTC's original mail describing the issue to
make sure it wasn't dropped, even though I don't understand it.
Essentially, I feel DSTC wants Notification to explicitly state
the name-value pairs used throughout Notification must always
be the data type CosNotification::PropertySeq, and not some
structural equivalent, except in one exception case which I'm not
quite clear about. Once DSTC clarifies this last part, I would
be happy to incorporate the suggested change.
VOTE: YES means to add text clarifying that name-value pairs in Notification
are always of type CosNotification::PropertySeq; NO means to do nothing
Issue 2212: Footnote on page 34 (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: 2) I note that a footnote on page 34 of the spec says that the term
"name-value pair" is not meant to denote CORBA::NVList, but it doesn"t
actually say what it does mean. This should be fixed too (before table
2.2 where it"s used first).
Resolution: Added text to footnote on page 34
Revised Text:
Actions taken:
November 16, 1998: received issue
November 16, 1999: closed issue
Discussion: Synopsis: This issue is related to issue 2211. There is currently a footnote
on the bottom of page 34 which states that the term "name-value
pair", as used thoroughout Notification, should not be construed to
mean CORBA::NVList. However, the footnote does not clearly state
what "name-value pair" does mean. The proposed resolution is to add
text to the footnote to clarify that "name-value pair" means
CosNotification::PropertySeq
Disposition: I agree with the issue and the proposed resolution.
VOTE: YES means to add the recommended text to the footnote; NO means to do
nothing
Issue 2213: The section 2.4.5 (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: 3) The section 2.4.5 - "A Short-hand Notation for Filtering
a Generic Event" is supposed to provide a way of addressing all event
types, IMO including typed event transmissions that appear within an
Any as a CosNotification::PropertySeq with properties for the
operation name and each parameter.
Some text should be included which states that $<ident> matches not
only $.<ident> for anys, but also $(<ident>) in the case where the any
contains a single CosNotification::PropertySeq.
Resolution: Added text to end of 2nd to last paragraph in section 2.4.5 (the 2nd change bar on page 47)
Revised Text:
Actions taken:
November 16, 1998: received issue
November 16, 1999: closed issue
Discussion: Synopsis: It was pointed out that the short-hand notation for filtering
generic events described in section 2.4.5 does not clearly
indicate the notation can be used to designate typed events
that have been wrapped into an Any as a CosNotification::PropertySeq.
It was proposed to add text to this section to indicate that
$<ident> matches not only $.<ident> for Anys, but also $(<ident>)
in the case the Any contains a single CosNotification::PropertySeq.
Disposition: I agree with the issue and proposed resolution. Specifically,
I propose to modify the last sentence of the 4th paragraph
of section 2.4.5 to read:
"If no match is found, the translation defaults to either
$.variable, or in the case of a CORBA::Any that encapsulates
a single unnamed name-value pair list (Sec 2.4.4), $(variable)."
VOTE: YES means to add the proposed text; NO means to do nothing
Issue 2216: Issue with the algorithm for evaluating $<variable> expressions (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: The algorithm for evaluating $<variable> expressions does not
allow for $domain_name and $type_name to be used.
Resolution: Added text to middle of 2nd to last paragraph in section 2.4.5 (the 1st change bar on page 47)
Revised Text:
Actions taken:
November 17, 1998: received issue
November 16, 1999: closed issue
Discussion: Synopsis: Section 2.4.5 describes an algorithm for evaluationg $<variable>
expressions. As currently stated, the algorithm would not allow
for $domain_name and $type_name to be used, since the text states
that it can only be applied to resolve simple-typed members of
$.header.fixed_header, when in fact the domain_name and type_name
members of the fixed header are nested within the EventType
structure, and are therefore non-simple-typed members. The proposed
resolution is to re-word the relevant text to state the the
algorithm can resolve $domain_name, $type_name, and $event_name to
$.header.fixed_header.event_type.domain_name,
$.header.fixed_header.event_type.type_name, and
$.header.fixed_header.event_name, respectively.
Disposition: I agree with the issue and the proposed resolution. The current
text is legacy from before the fields in question were made part
of a complex data type.
VOTE: YES means to re-word the text as recommended; NO means to do nothing
Issue 2217: Not all references to event types have been updated (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: Not all references to event types have been updated to refer to
the correct IDL type names:
struct EventType {
string domain_name;
string type_name;
};
Resolution: fix see below
Revised Text: I used "Find" to find all errant occurances of "domain_type" and
"event_type". I made appropriate changes in following places: Table 2-2,
Figure 2-2, 2nd paragraph after Fig 2-2, filtering example in section 2.3,
2nd to last paragraph in section 2.8, section 3.1.1.1.
Actions taken:
November 17, 1998: received issue
November 16, 1999: closed issue
Discussion: Synopsis: An older, pre-adoption revision of the spec defined the fixed header
of a structured event to contain string type members named
"domain_type" and "event_type". Prior to adoption of the spec, this
was changed to be the following data structure
struct EventType {
string domain_name;
string type_name;
};
The submitter of this issue pointed out several places in the
spec where the legacy fixed header member names "domain_type"
and "event_type" are still used, and recommends they be changed
to make them consistent with the actual member names.
Disposition: I agree with the issue and the proposed resolution
VOTE: YES means to make the recommended changes; NO means to do nothing
Issue 2219: Text on p. 54 describing applicability of EvenReliability QoS out of date (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: The text on page 54 describing the applicability of EventReliability
QoS is out of date:
"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."
Resolution: Reworded last paragraph in Reliability section of section 2.5.5
Revised Text:
Actions taken:
November 18, 1998: received issue
November 16, 1999: closed issue
Discussion: Synopsis: There is text on page 54 that states that the EventReliability
QoS property can be applied per-Channel, per-Admin, and per-Proxy
but not per-event. Elsewhere in the spec, it claims EventReliability
can be applied per-Channel and per-event. The proposed resolution
is to change the text on page 54 to make it consistent with the
rest of the spec.
Disposition: I agree with the issue and the proposed resolution
VOTE: YES means to make the recommended change; NO means to do nothing
Issue 2220: Explicit statement missing in contraint grammar (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: Issue: No explicit statement is given in the contraint grammar about
which operators apply to enumerated types.
Suggested solution:
Only equality and inequality operators (== != >= > < <=) should be
defined as legal on enums... as these are all that CORBA requires are
available in a language mapping.
Resolution: fix see below
Revised Text: 2 changes in section 2.4.3: 1) Added "enum" as one of the types an
operand could be classfied as (2nd change bar on page 45), 2) Added
a bullet towards the bottom of page 45 stating that only equality
and inequality operations apply to enums (3rd change bar on page 45).
Actions taken:
November 18, 1998: received issue
November 16, 1999: closed issue
Discussion: Synopsis: No explicit statement is made in the description of the constraint
grammar about which operators can be applied to enumerated types.
The proposed resolution is to add text stating that only
equality and inequality (== != >= <= > <) can be applied to enums.
Disposition: I agree with the issue and the proposed resolution
VOTE: YES means to add the recommended text; NO means to do nothing
Issue 2229: Inconsistency on p 54 (notif_service-rtf)
Click here for this issue's archive.
Nature: Revision
Severity:
Summary: Summary: Just a minor note to page 54 in the 98-11-01 spec. In the last paragraph
of the Reliability section, you say that EventReliability can be set
both at channel, admin and group level. This is inconsistent with Table
2-4. If the table is correct you should probably remove that last
paragraph completely as I think it makes sense to set
ConnectionReliability at any level.
Resolution: Fix for issue 2219 also fixed this problem
Revised Text:
Actions taken:
November 30, 1998: received issue
November 16, 1999: closed issue
Discussion: Synopsis: This issue points out text on page 54 that claims the EventReliablity
QoS property can be applied to an EventChannel, Admin, or Proxy.
Table 2-4 which summarizes which QoS properties apply to which
objects indicates EventReliability can be applied to an EventChannel,
or on a per-message basis. The proposed resolution is to modify the
text to make it consistent with the table.
Disposition: I agree with the issue and the proposed resolution
VOTE: YES means to make the recommended change; NO means to do nothing
Issue 2297: Unnecessary restriction defined on Mapping Filters (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: The sections in Chapter 3 that discuss the semantics of priority_filter and
lifetime_filter associated with Proxy objects indicate that Mapping Filters
associated with Proxy objects are only applied if there is no equivalent
Mapping Filter defined for the Admin that created the Proxy. If there
is a Mapping Filter defined at the Admin level, the one defined at the
Proxy level is ignored.
We feel this restriction is unnecessary, and in some cases even undesirable.
We thus feel the text that indicates this semantic should be removed wherever
it appears.
Resolution: fix see below
Revised Text: Added sentence to next to last paragraph of section 2.3.1. Rewordedsections 3.4.15.4 and 3.4.15.5.
Actions taken:
January 7, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The sections in Chapter 3 that discuss the semantics of
priority_filter and lifetime_filter associated with Proxy objects
indicate that Mapping Filters associated with Proxy objects are
only applied if there is no equivalent Mapping Filter defined
for the Admin that created the Proxy. If there is a Mapping
Filter defined at the Admin level, the one defined at the Proxy
level is ignored. We (NEC) feel this restriction is unnecessary,
and in some cases undesirable, as it may be desirable to define
a Mapping Filter at the Proxy level which overrides that set at
the Admin level. Our proposed resolution is to remove the text
that states this restriction.
Addendum: This issue was re-raised recently. The current consensus seems to
be that the text should explicitly say that the MappingFilter at
the Proxy level overrides on set at the Admin level.
Disposition: I agree with the issue and the proposed resolution described in
the addendum.
VOTE: YES means to change the text according to the addendum. NO means to do
nothing.
Issue 2433: CosNotification -- MaxEventsPerConsumer = 0 for infinity? (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: The CosNotification spec is careful to say that, for the administrative
properties (MaxQueueLength, MaxConsumers and MaxSuppliers), the default
value is zero, and it means that there is no limit.
As far as I can see there is not similar wording for the QoS property
MaxEventsPerConsumer. Two questions that should probably be answered are:
- is there a magic value that means "no limit"?
- what is the default value if it"s not eqplicitly set at any level?
I would suggest that, for consistency with MaxQueueLength, the magic value
should be 0, and the default should be that same value.
Resolution: Added sentence to end of MaxEventsPerConsumer section of section 2.5.5
Revised Text:
Actions taken:
February 3, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The spec states that a 0 value for MaxQueueLength, MaxConsumers
and MaxSuppliers means those QoS properties impose no limited on
the entity they are intended to constrain. The is not similar
wording for MaxEventsPerConsumer. The proposed resolution is to
add similar wording for MaxEventsPerConsumer, making 0 be the
default value meaning there is no limit on the number of events
that can be queued per consumer.
Disposition: I agree with the issue and the proposed resolution
VOTE: YES means to add the recommended text; NO means to do nothing
Issue 2434: Default values for PacingInterval and MaximumBatchSize QoS properties? (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: Are there any default values for the PacingInterval and MaximumBatchSize QoS
properties? The default value for PacingInterval could be 0 meaning that a
sequence type consumer is willing to wait indefinitely for an event sequence.
But the MaximumBatchSize can"t be 0 as both zero and an indefinite number of
events are infeasible (an exception could be raised if this QoS is set to a
value less than 1).
Resolution: Added sentences to end of MaximumBatchSize and PacingInterval sections in section 2.5.5
Revised Text:
Actions taken:
February 3, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The spec does not define what the default values for PacingInterval
and MaximumBatchSize are. Furthermore, the meaning of 0 for those
properties is unclear. The proposed resolution is to make 0 be
the default for PacingInterval, and have it mean that the client
is willing to wait indefinitely for the batch to fill up, but
the author of the issue was not sure how to handle the default
value and meaning of 0 for MaximumBatchSize.
Disposition: I agree that the default value for PacingInterval should be 0,
and that it should mean the Proxy on which it is set will never
forward a "partial" batch, instead waiting for MaximumBatchSize
events to accumulate before forwarding the any batch. As for
MaximumBatchSize, I propose that the default value be 1, for
lack of a better default value (really, the user should always
explicitly set this property if using sequence proxies).
Furthermore, I feel (like the author of the issue) that an attempt
to set MaximumBatchSize to 0 should cause the UnsupportedQoS
(BAD_VALUE) exception to be raised.
VOTE: YES means to make the changes described above in the "Disposition"
section; NO means to do nothing
Issue 2448: EventType IDL typos (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: The Notification Service IDL EventType contains the element domain_name.
In the text of the specification this is refered to as domain_type on
pages 28, 29, 33, 37, 79 etc.
Resolution: Fix to issue 2217 fixed this problem
Revised Text:
Actions taken:
February 10, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: Essentially, this issue is a duplicate of issue 2217. It points out
that in several places throughout the spec the fixed header field
"domain_type" is mentioned, when the field its referring to is
really named "domain_name" in the IDL.
Disposition: The issue points out obvious typos which should be fixed in the
next revision.
VOTE: YES means to make the recommended changes; NO means to do nothing
Issue 2554: Filter evaluation in pull mode (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: It is unclear from the spec when filters are evaluated in pull mode. For
suppliers there"s no problem as the filter is evaluated when the event
is received. On the consumer side, the filter can either be evaluated
when the event is entered into an internal queue (i.e. when the supplier
proxy "receives" the event) or when the consumer decides to pull the
event.
This is only a problem when a filter constraint contains the $curtime
reserved run-time variable. Perhaps the most intuitive for a user is
filter evalution at pull time? However, the implications can be quite
significant for sequence type consumers when invoking the
try_pull_structured_events operation. The proxy will have to match all
required events against the filters - and if there"s not enough events
all filter results must be discarded.
Resolution: Added 2 sentences to 5th paragraph after constraints examples in section 2.3
Revised Text:
Actions taken:
March 29, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The spec does not currently state when filtering is performed in
the case of pull-style consumers pulling events from pull-style
proxy suppliers. This is mainly an issue when filtering is done
based on $curtime. The submitter of this issue recommends that
filtering be done when the consumer actually invokes "pull", but
points out that the issue becomes very tricky in the case of
sequence pull consumers invoking a "try_pull_structured_events".
Disposition: My personal recommendation is that if the spec is going to
specify when filtering is performed in the case of pull-style
proxy suppliers, that it be specified to be done immediately as
the proxy receives events (and not delay the filtering until the
consumer invokes "pull" as recommended by the issue submitter).
The main reason for this is to keep the implementation more
straightforward. In general, there will be complications using the
delayed semantic with regard to the "try_pull" varients because
the results of "try_pull" on the same set of events would be
variable over time if filtering is delayed until "try_pull" is
attempted. For instance, "try_pull" may return TRUE if an event
exist that is being filtered based on $curtime, and the event
passes the filter when "try_pull" is invoke. Then, the consumer
would invoke "pull" assuming an event existed, but the "pull"
could result in the event being filtered based on $curtime. Now,
the pull consumer would block due to no event being available
to pull, even though the consumer had intentionally postponed
doing "pull" until "try_pull" returned TRUE.
So, my recommendation would be to specify the semantic such that
filtering is done only when the proxy supplier first queues the
event. If this semantic is well-defined, consumers can construct
their filters accordingly, and be aware of what will happen when
they specify constraints based on $curtime.
VOTE: YES means to add text to the spec specifying that filtering by pull-style
ProxySuppliers is performed prior to the proxy queuing the event to make
it available for pulling (i.e., as soon as the Proxy receives the event).
NO means to do nothing.
Issue 2555: Semantics of Disconnected exception (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: It would be nice if the spec explicitly stated what happens when a pull
supplier or push consumer raises the Disconnected exception. One way to
look at it is that when the client raises Disconnected it no longer
wants to send or receive any events and it"s basically disconnected
(i.e. the same as if the disconnect_xx_yy operation was invoked).
I believe this is an issue because the disconnect_xx_yy operation
controls the lifecycle of the proxy. If the above interpretation is
valid, the proxy will be destroyed when the client raises Disconnected.
Alternatively, the proxy could just change its state back to not
connected (the same state as when the proxy was just created by an admin
object).
Resolution: resolved, see below
Revised Text: Added text to end of 1st paragraph in sections 3.3.71., 3.3.9.1, 3.3.9.2, 3.3.11.1, 3.3.13.1, 3.3.13.2
Actions taken:
March 29, 1999: received issue
November 16, 1999: closed issue
Discussion: ynopsis: The spec does not define specifically what happens when an endpoint
pull-supplier or push-consumer raises the Disconnected exception.
The submitter of the issue mentions one interpretation is that
when an endpoint client raises Disconnected, it no longer wants to
send/receive events and is basically disconnected. He adds that this
is an issue because being disconnected has object lifecycle
implications for the proxies that the clients are connected to...
essentially being disconnected implies that the proxies no longer
exists. So, one possible semantic that could be defined is that the
proxy that the client is connected to could invoke its own
disconnect_xx_yy operation to force the proxy to be cleaned up.
Another possible semantic, however, is that the proxy could change
its state back to existing but being not connected, such as it
was when it was created and prior to the client connecting.
The submitter of the issue goes on to say that it would be useful
to specify in what states (i.e., between CONNECTED, NOT_CONNECTED,
SUSPENDED, and DESTROYED) event type information is propagated
through the NotifyPublish/NotifySubscribe interfaces.
Disposition: Regarding the main issue, I feel the issue author's first
recommendation is correct...the semantic should be that if
an endpoint raises the "Disconnected" exception during a proxy's
attempt to send/receive an event, the proxy's disconnect_xx_yy
method should be invoked to destroy the proxy. As the issue
author pointed out, the intended semantic of Notification is
such that when a client disconnects, its proxy should be
destroyed. This implies that proxies are not intended to be
reused by multiple clients. If the proxy is attempting to perform
event transmission to/from its client, then this implies the
client had explicitly connected at some point. If the client
later on decides it is disconnected, then the proxy should update
its state to be consistent. This means that the proxy should be
destroyed.
And, regarding the second part of the issue, I feel event type
information should be propagated to a client when its proxy is
in the CONNECTED or SUSPENDED state. Note that a client can
turn off event type propagation at any time by invoking the
obtain_*_types operation on its proxy with an argument of
ALL_NOW_UPDATES_OFF or NONE_NOW_UPDATES_OFF.
VOTE: YES means to add text specifying that when a client raises the
"Disconnected" exception, its proxy's disconnect_xx_yy method is
automatically invoked to destroy the proxy, and to add text that states
event type information is propagated to a client in the CONNECTED or
SUSPENDED state. NO means to do nothing.
Issue 2652: Modify the DiscardPolicy text, paragraph 1 page 56 (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: The description of when and how to apply discard policies is ambiguous.
It is unclear whether the discard policy is intended to be applied on
the events in their original order or as ordered by an order policy.
Resolution: resolved, see below
Revised Text: Made several changes to section 2.5.7. Made corresponding changes to
Discard Policy section of Section 2.5.5. Made appropriate changes to
IDL in Table 3.1 and Table B.1 (removed RejectNewEvents as possible
setting of DiscardPolicy, added RejectNewEvents as a possible Admin
property).
Actions taken:
May 18, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The issue submitter feels that description of when and how to apply
discard policy is ambiguous with respect to whether the policy is
intended to be applied on the events in their original order or as
ordered by an order policy. The issue submitter proposed the
following rewording of paragraph 1 on page 56:
"This QoS property enables a user of the Notification Service to
specify in what order the channel should begin discarding events
in the case of an internal buffer overflow."
"If a discard policy is set on a channel, it is applied when the
total number of events already queued in the channel is equal to
the MaxQueueLength administrative property (defined in
section 2.5.7). If set on a per-ConsumerAdmin basis, the discard
policy is applied when the number of events queued on behalf of one
of the consumers exceeds the MaxEventsPerConsumer QoS property for
that consumer. If set on a per-proxy basis, the discard policy is
applied whenever the number of events queued on behalf of the
connected consumer exceeds the MaxEventsPerConsumer setting for the
proxy supplier. In the latter two cases, an event is discarded only
with respect to its scheduled delivery to the consumer(s) on whose
behalf the policy is being applied. Events queued for delivery to a
consumer for which the discard policy does not apply are not affected
and remain queued for that consumer."
"In all cases, discard policies are applied after the event has been
received and queued. The RejectNewEvents discard policy is the only
exception as it is applied before the event is queued."
In addition, the issue submitter proposed the following rewording
for the descriptions of the LifeOrder and FifoOrder discard policy
settings:
"FifoOrder - The first event in the queue is the first discarded."
"LifeOrder - The last event in the queue is the first discarded."
The above is the original proposed resolution, and is now considered
resolution 2652a. Below are proposed resolutions 2652b and 2652c:
First, the background for the new proposed resolution:
There are some issues that appear in connection with the DiscardPolicy
that are hinted at in the issue (2652) description, but not addressed
in the text for the resolution. I think we need to seriously consider
amending the resolution to fix these:
1) RejectNewEvents not appropriate at any level other than EventChannel
The RejectNewEvents value of DiscardPolicy is now the _default_
value. BUT this value is meaningless at Admin and Proxy levels (I
assume that we don't want the behaviour that setting RejectNew on
any SupplierProxy results in all ConsumerProxies rejecting push
calls (or not making any further pull calls) until the
SupplierProxy's queue has space again - and I can't think of any
other plausible semantics). Therefore its inheritance as the value
for created Admins and Proxies is inappropriate. There are several
ways in which this can be fixed:
Here are the proposed alternative resolutions. Note that I've
relabel them as b) and c), so that the initial proposed resolution
can be considered resolution a).
b) [Minimal change model] State somewhere that although this value
is the default at the Channel, that when Admins and Proxies
are created the value that they inherit when RejectNewEvents
is set at the Channel will be Any.
Note that this is really a quick and dirty fix, as it breaks
the QoS inheritance model, and (c) provides a more considered
approach.
c) [is RejectNew really a DiscardPolicy?] Given that the
inheritance of DiscardPolicy to Admins and their Proxies makes
sense when its value is set to anything other than RejectNew,
it seems that this value is inappropriate for this policy. In
fact, because the value applies only at the channel level, it
seems that it would be better to have it as a separate
property (rather than an "orthogonal value" of an existing
property). AND it seems that this property would be better
grouped with other properties that apply to the channel as a
whole - the Admin Properties. It would be a boolean valued
property with the semantics:
TRUE: when queue resources for the channel are full, do not
discard events - rather suspend all pull calls from Proxy
Pull Consumers, and raise a <Name of System Exception>
exception to all incoming push calls on Proxy Push
Consumers.
FALSE: when queue resources for the channel are full apply the
Discard Policy to avoid overruns at each appropriate
object where there is a queue.
With this resolution the Any value for Discard Policy would
become the default.
Disposition: I personally have no strong feelings about this issue, since
we (NEC) feel that DiscardPolicy only makes sense on a
per-channel basis anyway. But, I'll go along with option c),
since technically it is the most correct.
VOTE: Voters can vote YES to at most one of 2652a, 2652b, or 2652c. Voting
YES to one of these means that proposed resolution is the one of choice
for your company. Voting NO to all 3 is also valid, and means that no
change should be made with regard to this issue.
NOTE: Only 2652c passed
Issue 2653: To add to "Reliablity" text, Page 54 after paragraph 3. (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: The current description of the Reliability quality of service settings
allows the possibility of modifying quality of service values in
a way that would violate validatation rules.
Resolution: Added text to bottom of Reliability section of Section 2.5.5.
Revised Text:
Actions taken:
May 18, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The current description of the Reliability QoS settings allows the
possibility of modifying QoS values in a way that would violate
validation rules. The issue submitter proposes to add the following
text to the "Reliability" description on page 54 after paragraph 3:
"The validity of quality of service reliability level modifications
depends on the state of Notification Service objects. In general,
reliability levels may not be modified after a "child" object has
been created. Such modifications may violate quality of service
validation rules of the Notification Service."
"Specifically,
- modifying the event channel reliability setting through
set_qos after ConsumerAdmin or SupplierAdmin objects have
been created is invalid, and
- modifying the ConsumerAdmin or SupplierAdmin reliability
settings through set_qos after proxy supplier and proxy
consumer objects are created is invalid.
Disposition: I personally do not have any real objection to these proposed
restrictions on implementations, but I'm not entirely convinced
they are necessary. We have had extensive e-mail discussions
about this issue, and I've never fully been convinced that these
changes are necessary. I would probably vote "abstain" on a vote
for this issue, and leave it to the consensus to determine whether
or not to incorporate the proposed changes.
VOTE: YES means to make the changes recommended by the issue author.
NO means to do nothing.
Issue 2654: Modify RejectNewEvents description, paragraph 8 page 56 (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: The description of the RejectNewEvents does not sufficiently constrain
its use to the event channel.
Resolution: resolved, see below
Revised Text: This issue is actually superceded by the acceptance of issue 2652c.
The fix for issue 2652c makes this issue obsolete.
Actions taken:
May 18, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The description of the RejectNewEvents setting for DiscardPolicy does
not sufficiently constrain its use to the event channel. The issue
submitter proposes the following change to the description of this
setting in paragraph 8 on page 56:
"RejectNewEvents - Do not accept new events if the number of queued
events in the event channel equals MaxQueueLength
and raise the IMPL_LIMIT system exception. Note
that this DiscardPolicy setting has meaning only
when set on the event channel.
Disposition: I agree with this proposed change.
VOTE: YES means to make the change recommended by the issue author.
NO means to do nothing.
Issue 2655: Modify paragraph 6, page 52 (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: The document implies that all factories can assign quality of service
properties when objects are created. This is not the case.
Resolution: resolved, see below
Revised Text: : Modified next to last paragraph of section 2.5.3. Note that I used
slightly different wording than that which was recommended.
Actions taken:
May 18, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The document implies that all factories can assign QoS properties
when objects are created. This is not the case. The issue submitter
proposes the following rewording of paragraph 6 on page 52:
"The actual set of properties that should be applied by a component
is derived from merging the set of properties passed to the factory
with the properties of the component in the higher scope level. In
cases when a property is present in both places, the property value
explicitly expressed in the lower level applies."
Disposition: A bit of a nit but I have no problem with this proposed change.
VOTE: YES means to make the change recommended by the issue author.
NO means to do nothing.
Issue 2662: CosNotifyChannelAdmin module: typed proxies not defined in ProxyType enum (notif_service-rtf)
Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary: Summary: The CosNotifyChannelAdmin::ProxyConsumer and the
CosNotifyChannelAdmin::ProxySupplier interfaces define
the MyType attribute as a ProxyType.
This ProxyType enum is defined as:
enum ProxyType {
PUSH_ANY,
PULL_ANY,
PUSH_STRUCTURED,
PULL_STRUCTURED,
PUSH_SEQUENCE,
PULL_SEQUENCE
};
The CosTypedNotifyChannelAdmin::TypedProxyPushConsumer and
the CosTypedNotifyChannelAdmin::TypedProxyPullConsumer
interfaces inherit the CosNotifyChannelAdmin::ProxyConsumer
interface.
Likewise, the CosTypedNotifyChannelAdmin::TypedProxyPushSupplier
and the CosTypedNotifyChannelAdmin::TypedProxyPullSupplier
interfaces inherit the CosNotifyChannelAdmin::ProxySupplier
interface.
The objects inheriting those typed interfaces have no meaningfull
way to initialize the MyType attribute, therefore I think the
PUSH_TYPED and PULL_TYPED values are missing to this enum.
Thua, the resulting ProxyType enum should be defined as:
enum ProxyType {
PUSH_ANY,
PULL_ANY,
PUSH_STRUCTURED,
PULL_STRUCTURED,
PUSH_SEQUENCE,
PULL_SEQUENCE,
PUSH_TYPED,
PULL_TYPED
};
Resolution: resolved, see below
Revised Text: Modified IDL definition of ProxyType in Table 3-4 and B-4. Made appropriate changes to sections 3.4.1.1 and 3.4.2.1.
Actions taken:
May 25, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The ProxyConsumer and ProxySupplier interfaces defined in the
CosNotifyChannelAdmin module define the MyType attribute, which
is of type ProxyType. ProxyType is an enumerated type that is
intended to indicate the specify type of Proxy that an instance
supporting either the ProxyConsumer or ProxySupplier interfaces
represents. It's possible values can indicate any of the Proxy
types defined in the CosNotifyChannelAdmin module. However, the
Proxy interfaces defined in the CosTypedNotifyChannelAdmin
module also inherit either the ProxyConsumer or ProxySupplier
interfaces, yet the ProxyType data type does not include an
enumaration that can be used to represent one of the types of
proxies. To resolve this problem, the following should be added
as possible values to the ProxyType enum: PUSH_TYPED, PULL_TYPED.
Disposition: I agree with this proposed change.
VOTE: YES means to make the change recommended by the issue author.
NO means to do nothing.
Issue 2712: TimeBase::UtcT where TimeBase::TimeT is needed (notif_service-rtf)
Click here for this issue's archive.
Nature:
Severity:
Summary: TimeBase::UtcT where TimeBase::TimeT is needed
Resolution: Modified offending text in Pacing Interval section of section 2.5.5
Revised Text:
Actions taken:
June 8, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The description of the PacingInterval QoS property in section 2.5.5
states that the data type of the value associated with PacingInterval
should be TimeBase::UtcT. In the IDL listing in Chapter 3 and also
Appendix B, the comment under PacingInterval claims the data type
fo the associated value should be TimeBase::TimeT. The issue author
proposes to change the text in section 2.5.5 to make it consistent
with the IDL (i.e., the data type of the associated value should be
TimeBase::TimeT).
Disposition: I agree with this proposed change.
VOTE: YES means to make the change recommended by the issue author.
NO means to do nothing.
Issue 2713: Pull Methods on Sequence Suppliers (notif_service-rtf)
Click here for this issue's archive.
Nature:
Severity:
Summary:
Resolution: Modified text in sections 3.3.13.1 and 3.3.13.2
Revised Text:
Actions taken:
June 8, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The "pull" and "try_pull" methods supported by a
SequencePullSupplier take an input parameter that indicates the
maximum number of events the invoker wants to pull.
SequencePullSuppliers may also have a MaximumBatchSize QoS
property associated with them, that also controls the size of the
batch that will be pulled. The issue author recommends wording be
added to the spec to state that the input parameter to these methods
may request some number of events less than or equal to the
current MaximumBatchSize setting on that proxy, but not more.
Disposition: I agree with this proposed change.
Issue 2714: Problem with Sequence Pull Model (notif_service-rtf)
Click here for this issue's archive.
Nature:
Severity:
Summary:
Resolution: Modified text in sections 3.3.13.1 and 3.3.13.2
Revised Text:
Actions taken:
June 9, 1999: received issue
October 30, 2000: closed issue
Discussion: Synopsis: The spec is not clear on the interaction between PacingInterval
and blocking pull operations. The issue author recommends that
specific wording be added to the spec to state that the
PacingInterval timer begins at the instance that a sequence-style
pull supplier receives its first event in a new batch.
Disposition: In our implementation, we start the PacingInterval timer as
soon as the sequence-style consumer invokes a blocking pull. We
do not wait until the first event in a new batch is received.
Personally, I feel our semantic makes a lot more sense. If the
Consumer configured PacingInterval to a specific value, I think
it implies that Consumer wants to receive events within that
time period, if any our available.
To more clearly demonstrate the difference between the two
semantics here, suppose you have a situation in which a
SequencePullConsumer has set the PacingInterval of its
SequenceProxyPullSupplier to 1 minute and has invoked a blocking
"pull". Now, suppose 10 minutes elapse without any events
arriving at that SequenceProxyPullSupplier. If DSTC's semantic
were applied, the SequenceProxyPullSupplier would still wait an
additional minute before returning that event, even though the
Consumer had indicated that it only wanted to wait at most 1
minute between receiving event batches. If NEC's semantic were
applied, the "pull" operation would return immediately after
reception of the event, because 10 minutes had elapsed since the
"pull" was invoked, and PacingInterval was only set to 1 minute
(and thus had long since expired).
VOTE: Because there are two different proposed semantics to resolve this issue,
I will divide the voting on this issue into 2714a and 2714b. Voting
YES on issue 2714a means to adopt DSTC's recommended semantic. Voting
YES on issue 2714b means to adopt NEC's recommended semantic. Voting
NO on both 2714a and 2714b means to not make any changes in response to
this issue (since one could argue that this is an implementation detail
that should not be addressed in the spec). Voting YES on both 2714a and
2714b is invalid...if you do this I will ask you to recast your vote.
NOTE: Only 2714b passed
Issue 2740: Clarify Handling of Priority and Timeout (notif_service-rtf)
Click here for this issue's archive.
Nature:
Severity:
Summary: The issue author describes the various ways that the Priority
and Timeout QoS properties can be influenced, and mentions that
the spec is too vague about the interactions between the various
mechanisms. Specifically, the issue author enumerates the following
problems in the spec with respect to this issue:
1) If the StructuredEvent specifies a Priority/Timeout, and the
ProxyConsumer specifies a Priority/Timeout, which one "wins"?
2) Setting Priority/Timeout on a SupplierAdmin or on the Channel
is only enabled to be inherited down to a ProxyConsumer, and not
to have any actual effect. The spec does not state this.
3) Setting Priority/Timeout on a ConsumerAdmin or ProxySupplier should
be made illegal (cause UnsupportedQoS with UNSUPPORTED_PROPERTY
error code to be raised).
4) If a StructuredEvent does not contain a Priority/Timeout, does
having this property set on the ProxyConsumer affect the contents
of the StructuredEvent, or just the way the StructuredEvent is
treated with respect to these properties.
5) In the case that a Mapping filter is associated with a
ProxySupplier, and its constraints all evaluate to FALSE for a
particular event, does the "default_value" or the value for
Priority/Timeout associated with the ProxyConsumer take precedence?
Resolution: Only 2740d passed
Revised Text:
Actions taken:
June 16, 1999: received issue
November 16, 1999: closed issue
Discussion: Synopsis: The issue author describes the various ways that the Priority
and Timeout QoS properties can be influenced, and mentions that
the spec is too vague about the interactions between the various
mechanisms. Specifically, the issue author enumerates the following
problems in the spec with respect to this issue:
1) If the StructuredEvent specifies a Priority/Timeout, and the
ProxyConsumer specifies a Priority/Timeout, which one "wins"?
2) Setting Priority/Timeout on a SupplierAdmin or on the Channel
is only enabled to be inherited down to a ProxyConsumer, and not
to have any actual effect. The spec does not state this.
3) Setting Priority/Timeout on a ConsumerAdmin or ProxySupplier should
be made illegal (cause UnsupportedQoS with UNSUPPORTED_PROPERTY
error code to be raised).
4) If a StructuredEvent does not contain a Priority/Timeout, does
having this property set on the ProxyConsumer affect the contents
of the StructuredEvent, or just the way the StructuredEvent is
treated with respect to these properties.
5) In the case that a Mapping filter is associated with a
ProxySupplier, and its constraints all evaluate to FALSE for a
particular event, does the "default_value" or the value for
Priority/Timeout associated with the ProxyConsumer take precedence?
Disposition: I personally disagree that most of the above claims are really
issues. Firstly, the order of precedence for the way QoS
properties are treated is clearly stated in the spec on page 52
in section 2.5.3. There, it clearly states that QoS set on a
per-message level overrides the setting of QoS on any object
within a channel, and that a MappingFilter is the only thing
that can override per-message QoS. This takes care of issue 1)
above.
Regarding issue 2), the text in the spec already explains that
in general, QoS set at a higher level of the object hierarchy
is used as the default value for the same QoS property at the
lower levels of the hierarchy, unless specifically set at the
lower levels. So, of course setting Priority/Timeout on a
SupplierAdmin or Channel would be inherited down to a
ProxyConsumer. And, I think the model of Notification implies
that these properties set at the SupplierAdmin or Channel could
not themselves have any other side-effect.
Regarding issue 3), I disagree that setting these properties
on a ConsumerAdmin or ProxySupplier should be made illegal. If
a specific implementation cannot derive a useful semantic for
setting these properties on these objects, they can always raise
UnsupportedQoS. However I don't think we should preclude the
possibility that an implementer may find a useful semantic
for these properties being set on these objects (our does, for
instance).
Regarding issue 4), this may be the only point in this issue
where I agree that the author may have a point. Nowhere does
it explicitly state that if a StructuredEvent does not contain
a Priority/Timeout, but one or both of these properties is set
on the ProxyConsumer that receives it, that the contents of the
StructuredEvent are not modified, although I believe that's the
intent. I remember we discussed this issue in our original
submitters meeting, and the consensus seemed to be that the
channel should never modify the contents of events...in this case
it would use the QoS properties set at the Proxy level just to
affect the way the event is treated, and not modify its contents.
Note that the spec does explicitly state this with regard to
MappingFilters, but there is no similar text to cover the specific
case mentioned here.
Regarding issue 5), the text already specifically states that
a QoS property's value set as the result of a MappingFilter
overrides any other setting of that QoS property, which to me
means that the default value would take precedence in this case.
I believe this semantic is already implied by the spec, and that
no change is necessary.
VOTE: I can't figure out any other way to vote on this issue than to break
it down to 5 sub-issues. So, the voting will be interpreted as follows:
Issue 2740d: Voting YES means to add text to the spec explicitly
stating that if these properties are set at the Proxy
level but not within a StructuredEvent, they are only used
to affect the way the event is handled by the channel,
and does not cause the event to be modified in anyway.
Voting NO means to make no change.
Issue 2743: Semantics of Timeout Value (notif_service-rtf)
Click here for this issue's archive.
Nature:
Severity:
Summary: The issue author claims that the spec does not explicitly state
when the service starts the "clock" with respect to an event's
Timeout value. One possibility would be to start the clock as soon
as the event enters the channel (i.e, at the receiving
ProxyConsumer). Another would be to start the clock when the event
is queued for delivery at the ProxySupplier.
Resolution: fixed, see below
Revised Text: Sentence added to description of Timeout property in Expiry Time section
of section 2.5.5
Actions taken:
June 16, 1999: received issue
November 16, 1999: closed issue
Discussion: Disposition: The issue author did not state which of the above two possible
semantics they prefer. Personally, I think the semantic that the
clock starts ticking as soon as the event is received by the
ProxyConsumer is the only one that makes sense, so I'll propose
the voting that way. In reality, though, this is another issue
in which I feel common sense overrides the need for explicit
statement.
VOTE: YES means add text stating that the clock starts ticking when the event
is received by the ProxyConsumer.
NO means to do nothing.
Issue 9079: MaxEventsPerConsumer (notif_service-rtf)
Click here for this issue's archive.
Source: Remedy IT (Mr. Johnny Willemsen, jwillemsen(at)remedy.nl)
Nature: Revision
Severity: Minor
Summary:
The type of MaxEventsPerConsumer should be an unsigned long, why should this be long, so far as I can't tell there is no need for a negative number