Hi everyone,
In my workflows, I observed that the union tool does not wait for all incoming data streams to fully arrive before it starts passing records to the downstream tool. This happens even when:
- AMP Engine is disabled and
- I expect the Union Tool to behave like a “blocking” tool that collects all inputs before producing output.
However, what actually happens is:
- As soon as the union tool receives records from the first available input stream, it immediately starts outputting records to the next tool, even though other input streams are still processing upstream.
This results in downstream tools starting earlier than expected.
I’m aware that tools like Join, Summarize, Append Fields, etc., naturally behave as blocking tools because they must read the full dataset before producing output. But the union tool appears not to follow this pattern, even though it merges data from multiple sources.
So my questions are:
- Is this non-blocking behavior of the Union Tool expected by design?
- Does the engine (E1 and/or AMP) intentionally stream results from Union as soon as any input is available?
- If this is expected behavior, what is the recommended approach to enforce synchronization so that the union tool waits for all inputs before outputting data?
Thanks in advance to anyone who can provide insight into this behavior.