Error fieldx" cannot be found on any input stream when RMDS marked to run in parallel"
book
Article ID: KB0075194
calendar_today
Updated On:
Description
A user will configure the key expression for a module containing two input streams, and the RMDS adapter, when it is marked to run in parallel and assign it <fieldX>. This configuration is an attempted solution to having multiple instances of the adapter to handle portions of the total number of symbols requested for subscription, and to distribute the symbols requested to each instance of the adapter running in parallel threads. But when they specify <fieldX> as thier 'Key expression', Studio reports <fieldX> cannot be found in any input stream, even though it is present in the schema definition.
Resolution
The issue is that since the adapter has multiple input streams, the key expression must be able to be evaluated regardless of which stream the input comes from. In the case that is causing the error, "Item" is only available on the first input stream and not the second "command" stream. Note that since the input schemas for these stream are fixed by the adapter, there is no way to add this field to both streams to satisfy concurrency.
The workaround is to not use parallelism for a single RMDS adapter icon, but instead place multiple (in this case, four) separate instances of the RMDS Sub adapter on the drawing and direct requests to each through a pair of Filter operators (one per input stream) that are themselves evaluating what would have been the key expression. That way "command" stream input is also sent to the correct RMDS adapter instance. The RMDS Sub adapters themselves may each be made concurrent (but only use 1 thread) so they are not sharing the main application thread.
Issue/Introduction
Error fieldx" cannot be found on any input stream when RMDS marked to run in parallel"
Feedback
thumb_up
Yes
thumb_down
No