When working on large systems with many interfaces and subsystems, problems often stem at those points of intersection. We have a ASP.Net UI that calls an Oracle Work Flow that calls a Web Service, and spins back until it reaches the UI. The UI was receiving an error message. So who to blame? The w/f or the w/s? Each group pointed the finger at the other. Worse yet, when we tried to set a breakpoint in our model office environment to debug the w/s, the breakpoint was not being trapped. Hmmm. We wrote a simple test app to call the w/s in MO. With this test app, the breakpoint was being hit. AH HA! w/f is not calling the MO w/s!
There was no logging or instrumentation within the w/s. If there was, it would be quite easy to determine if it was being called, and what message it was returning to the w/f. It's like the documentation joke. We'll do it after were done. There are certain features that we shouldn't save 'till the end.