3.2.6.8 Initialize List of Known Directory Service Servers Event
This event is performed when the client needs to refresh its list of known directory service servers in the DirectoryServiceServersCollection (section 3.2.1.4) data element.<148>
To begin processing this event, the client MUST initialize the RPC connection to a directory service server from its DirectoryServiceServersCollection data element, as specified in section 3.2.3. If the initialization fails, the client MUST report an error in an implementation-specific manner and take no further action.<149>
Once an RPC binding is established, the client creates a temporary variable temp_server_list, which is an empty list of server names and addresses.
The client issues an S_DSLookupBegin method call with query parameters:
Restriction: rel=PRGT, prop=PROPID_QM_SERVICE, prval=1
Restriction: rel=PREQ, prop=PROPID_QM_SITE_ID, prval=client's site identifier
Column: PROPID_QM_PATHNAME_DNS
Column: PROPID_QM_PATHNAME
Column: PROPID_QM_ADDRESS
The client MUST call the S_DSLookupNext method. If the method returns success, the output parameter will include the name and address of known directory service servers for the client's site. The client must add this to temp_server_list. The client MUST repeat the preceding process starting from step 4.
If the method fails, the client MUST call the S_DSLookupEnd method.
The client MUST then copy temp_server_list to DirectoryServiceServersCollection (section 3.2.1.4) for future operations using the Message Queuing (MSMQ): Directory Service Protocol.