PubSub Default writerGroupId is GroupId
In PubSub configuration, the writerId
from dataset
tag is optional. If unset, it currently initializes to the same value as the groupId
According to Part 14:
-
groupId
(ingroupHeader
) is optional - DataSet
writerId
is mandatory in the message and '0' is forbidden. However, the receiver may use "0" to bypass filters and allow all DSM (See Part. 14 §6.2.8.3). This leads to a design issue: Supposing a Sub uses "0", all DSM are unfiltered and received, but in that case, there also is no way to know how each DSM can be decoded. The only solution would be to rely on DSM appearing order in configuration, which of course becomes impossible to mix with the current implementation:- Current implementation: the DSWriterId is used to identify the DSM and apply the matching metaData for extraction &
SetTargetVariable
. - required implementation for '0' WriterId: The order of appearance of DSM in configuration is used.
- Current implementation: the DSWriterId is used to identify the DSM and apply the matching metaData for extraction &
One solution would be to disallow mixing zero and non-zero WriterId
in configuration. When using zero, the configuration order is used, otherwise, the WriterId
is used.
Update the code to :
-
Change default writerId
to0
and ensure that all DSM among the same message are either {all zero} or {all non-zero}. Update DSM filtering to allow zerowriterId
, based on configuration order.
Requires resolution of #945 (closed)
Edited by Jérémie Chabod