Locking
One important aspect of the design of an integrated system such as NAV, that is often overlooked until it rears its ugly head after the system goes into production, is the issue of "Locking". Locking occurs when one process has control of a data element, record, or group of records (in other words, part or all of a table) for the purpose of updating the data within the range of the locked data and, at the same time, another process requests the use of some portion of that data but finds it to be locked by the first process.
In the worst case, which is a "deadlock", there is a design flaw; each process has data locked that the other process needs and neither process can proceed. As developers or implementers, one of our jobs is to minimize the locking problems and eliminate any deadlocks.
Locking interference between processes in an asynchronous processing environment is inevitable. There are always going to be points in the system where one process instance...