The sequence diagram for the typical case, forwarding a stored operation,
is shown below. The realizations of this and all other forwarding cases assume
that the host is on-line, and therefore do not check for host availability.
Preconditions - The forwarding type and required values for that type exist in the forwarding
context.
Flow of events - The forwarder application calls the execute() method of the ForwardingServerOperation.
- The operation retrieves the forwarding type, required values, and the
CommonCommunicationsService from the forwarding context.
- The operation calls the specified type of forwarding method, and retrieves
the Store service from the context.
- The retrieved record, which is a hash table, updates the context. The
operation itself and the CommonCommunicationsService are passed to the forwarder.
- The forwarder uses the CommonCommunicationsService to send
the request to the host.
- Upon receipt of a host response, the results are set in the context, and
the host response is returned to the client side.
- The stored operation is committed or rolled back in the STORE table, based
on the host response.
- The ForwardingServerOperation retrieves the Journal service from the context.
- The result of the committed or rolled-back store record is updated in
the Electronic Journal.
- The Electronic Journal commits the changes to the journal record if the
update is successful, or rolls them back if the update fails.