Source: Kratos RT Logic, Inc. ( Mike Anderson)
Numerous field tables in C2MS allow reusing the same REQUEST-ID for a request to provide a "replacement". For example, MVAL REQ Message says in the Fields table (Table 8-99) under REQUEST-ID:
"ID to identify the request message - if different request messages have the same value, the request is a replacement; else, it is a new request"
In all cases, this is the only explanatory text of what is meant by "replacement". This is pretty ambiguous about expected result. So, for example,
- If I send an initial request to start receiving MVAL A and B, and then send another request of the same REQUEST-ID for MVAL C, is the result that I'm now subscribed to A, B and C, or just to C?
- If I send a request to start receiving MVAL X and Y with a PUBLISH-RATE of 1 and then send another request for a duration of 120 minutes, and then send another request wit the same REQUEST-ID for MVAL Y with a PUBLISH-RATE of 5, am I subscribed to X at 1 and Y at 5, or just Y at 5?
There's no description of semantics regarding what is being replaced.
A related issue is STOP request, specifying non-symmetrical MVALs, and what to do in that situation.
- If I send a request to start receiving MVAL 11 and 12, and then send a STOP, but only specify MVAL 11, do I still get 12?
In C2MS 1.0, in every instance of sending a REQUEST-ID as part of a request, the Notes for the field states the identical, "ID to identify the request message – if different request messages have the same value, the request is a replacement; else, it is a new request." However this copy-paste doesn't always make sense.
Re-use of a REQUEST-ID only makes sense if the request leaves some process continuing to fulfill data streaming. Only two request messages have a start/stop concept. Therefore, this resolution assumes no other messages have a use case for 'replacement' and removes the confusing extra text.
Additionally, the concept of 'replacement' is not needed in the two cases where start/stop actions are present... just stop the old one and start a new one. Using 'replacement' can lead to confusion.
Reported: C2MS 1.0 — Fri, 4 Mar 2022 00:28 GMT
Updated: Sun, 13 Nov 2022 00:00 GMT
C2MS11 — REQUEST-ID as "Replacement" and related STOP
- Key: C2MS11-55
- OMG Task Force: Command and Control Message Specification (C2MS) 1.1 RTF