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>

  1. 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>

  2. 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.

  3. 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

  4. 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.

  5. If the method fails, the client MUST call the S_DSLookupEnd method.

  6. 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.