I got this response from webMethods support. Thank you to Sunil for getting the engineers to give such a thoughtful response.
[begin explanation]
Let’s say you have three objects, A, B, and C. A and B are Integration
Components and C is some support object like an event signature or an
operation. If you export A to A.adl and B to B.adl, both .adl files will
get a copy of C.
Load A.adl and you get A and C in the broker. So far so good. Now load
B.adl and the loader notices a dependency of A on C. The rule of thumb is that
unless you can prove that the change to C does not affect the built A, A gets
marked for rebuild.
Unfortunately the code is not at all aggressive in trying to determine if
the rebuild can be avoided, so lots of “extra” rebuilds get marked in all the
shipping versions. We looked at the price of an extra rebuild (click one
menu item) versus the price of not rebuilding something that needed it
(inconsistent run state) and let caution be our guide.
Over time the loading code will incrementally learn cases where not
rebuilding is safe. We’ll introduce these deliberately to ensure we never make the
opposite, much more damaging, error. Currently the only one it allows is a
perfect match, including all cross-references and dates.
[end explanation]
Support capped the email to me with a note that they are testing a new tool internally that forces all components to rebuild on a broker. The software is currently in Alpha, I think, and will be available as GA in due time.
I will try to get a hold of the “Build All” software and test it here for everybody.
#Integration-Server-and-ESB#webMethods