Alternative Design Ideas
These are the alternative design ideas:
NoSend scenario based on the background Remote Function Call (bgRFC). The bgRFC NoSend scenario uses linked lists for the queues.
NoSend scenario based on the background Remote Function Call (bgRFC). The qRFC NoSend scenario has been in use for MMW until now.
In the specification phase, prototypes for LDQ and for the two alternate design ideas were built and compared for reading and writing of various data volumes. The LDQ option proved superior to the alternatives both in performance and maintainability (see bgRFC NoSend MMW Performance Figures).
LDQ is a reimplementation and redesign of the qRFC NoSend scenario
This description does not cover the monitoring of local data queues.
All methods of LDQ classes require an Explicit Commit to persist their work in the database, with the exception of the CONFIRM_QUEUE_UNITS method in the IF_LDQ_READER interface. This method executes an Implicit Commit.
The sequence number of a unit in a queue describes the position of the unit in the queue. Sequence numbers are unique and in ascending order within a distinguished queue. Sequence numbers are not reused after deletion of units in the queue.
For performance reasons it is strongly recommended to confirm read units soon, since all read units are kept in storage for possible reading-again.
The class diagram is as follows: