Previous | Table of Contents | Next |
Locate response messages are sent from servers to clients as the response_message parameter of a locate RPC. They consist
of a fixed-format header, and a body whose format depends on information in the header.
16.4.4.1 Locate Response Header
DCE-CIOP locate response headers have the following format:
module DCE_CIOP { // IDL
enum LocateResponseStatus { LOCATE_UNKNOWN_OBJECT, LOCATE_OBJECT_HERE, LOCATE_LOCATION_FORWARD, LOCATE_TRY_AGAIN
};
struct LocateResponseHeader { boolean byte_order; LocateResponseStatus status;
// if status = LOCATE_LOCATION_FORWARD, an // IOP::IOR follows }; };
The members have the following definitions:
• byte_order indicates the byte ordering used in the representation of the remainder of the message. A value of FALSE indicates big-endian byte ordering, and TRUE indicates little-endian byte ordering.
• status indicates whether the object is valid and whether it is located in this server. It determines the contents of the body.
16.4.4.2 Locate Response Body
The contents of the locate response body depends on the value of the status member of the locate response header. Its format
is one of the following:
• If the status value is LOCATE_UNKNOWN_OBJECT, then the object specified in the corresponding locate request message is unknown to the server. The locate reply body is empty in this case.
• If the status value is LOCATE_OBJECT_HERE, then this server (the originator of the locate response message) can directly receive requests for the specified object. The locate response body is also empty in this case.
• If the status value is LOCATE_LOCATION_FORWARD, then the locate response body contains a new IOR containing a TAG_INTERNET_IOP or TAG_MULTIPLE_COMPONENTS profile whose components can be used to communicate with the object specified in the locate request message. This profile must provide at least one new DCE-CIOP binding component.
• If the status value is LOCATE_TRY_AGAIN, the locate response body is empty and the client should reissue the locate RPC, possibly after a short delay9.