3.1.6.7.1.9 mSMQSettings Objects

If, as a result of this write operation, one or more of the RoutingServer, DirectoryServer, or SupportingServer ADM attributes is TRUE where all were previously FALSE, one or more mSMQSettings objects MUST be created. For each GUID in iDirectoryObject.SiteIdentifierList, do the following:

  1. Search the Directory for a Site ADM element instance that has an Identifier ADM attribute that matches the GUID:

    1. Generate a Read Directory (section 3.1.6.3) event with the following arguments:

      • iDirectoryObjectType := "Site"

      • iFilter := An array of the following attribute-filter expressions ([MS-MQDMPR] section 3.1.7.1.20):

        • "Identifier" EQUALS the current GUID from iDirectoryObject.SiteIdentifierList

      • iAttributeList := An array of the following Site ADM element attribute names:

        • Name

    2. If the rStatus returned by the Read Directory event is set to DirectoryOperationResult.ObjectNotFound, the current GUID MUST be skipped.

    3. If the rStatus returned by the Read Directory event is not set to DirectoryOperationResult.Success, rStatus MUST be set to DirectoryOperationResult.GenericError, and processing MUST end.

  2. If any of the mSMQConfiguration attributes listed in the following table does not appear in ConfigurationAttributeList, a Get Object Properties Using LDAP (section 3.1.6.14) event MUST be generated with the following arguments:

    • iPath := WriteDN

    • iGuid := WriteGUID

    • iAttributes := a list of attribute names consisting of the mSMQConfiguration attributes listed in the following table that do not also appear in ConfigurationAttributeList

      mSMQSettings attribute

      mSMQConfiguration attribute

      mSMQQMID ([MS-ADA2] section 2.561)

      objectGUID

      mSMQServices ([MS-ADA2] section 2.569)

      mSMQServiceType

      mSMQRoutingService ([MS-ADA2] section 2.567)

      mSMQRoutingServices

      mSMQDsService ([MS-ADA2] section 2.540)

      mSMQDsServices

      mSMQDependentClientService ([MS-ADA2] section 2.536)

      mSMQDependentClientServices

  3. If the Get Object Properties Using LDAP event returns an rStatus that is not DirectoryOperationResult.Success, rStatus MUST be set to the rStatus returned by the Get Object Properties Using LDAP event, and processing MUST end.

  4. Generate a Create Object Using LDAP (section 3.1.6.12) event with the following arguments:

    • iParentPath := a distinguished name that MUST be constructed of the form specified for an mSMQSettings object in section 2.2.1, where "<computer name>" is the value of iDirectoryObject.ComputerName, and "<site name>" is the value of the rDirectoryObject.Name returned by the Read Directory event, with the first comma-separated element removed.

    • iChildName := "MSMQ Settings"

    • iObjectClass := "mSMQSettings"

    • iAttributes := a list of name-value pairs consisting of the mSMQSettings attribute names listed in the table in step 2 and the corresponding mSMQConfiguration values copied from ConfigurationAttributeList or the values returned by the Get Object Properties Using LDAP event in step 3.

  5. If the Create Object Using LDAP event returns an rStatus that is not DirectoryOperationResult.Success, rStatus MUST be set to the rStatus returned by the Create Object Using LDAP event, and processing MUST end.

If, as a result of this write operation, all of the RoutingServer, DirectoryServer, or SupportingServer ADM attributes are FALSE where previously one or more were TRUE, one or more mSMQSettings objects MUST be deleted. For each GUID in the SiteIdentifierList ADM attribute, do the following:

  1. Search the Directory for a Site ADM element instance that has an Identifier ADM attribute that matches the GUID:

    1. Generate a Read Directory (section 3.1.6.3) event with the following arguments:

      • iDirectoryObjectType := "Site"

      • iFilter := An array of the following attribute-filter expressions:

        • "Identifier" EQUALS the current GUID from iDirectoryObject.SiteIdentifierList

      • iAttributeList := An array of the following Site ADM element attribute names:

        • Name

    2. If the rStatus returned by the Read Directory event is set to DirectoryOperationResult.ObjectNotFound, the current GUID MUST be skipped.

    3. If the rStatus returned by the Read Directory event is not set to DirectoryOperationResult.Success, rStatus MUST be set to DirectoryOperationResult.GenericError, and processing MUST end.

  2. A Delete Object Using LDAP (section 3.1.6.13) event MUST be generated with the following arguments:

    • iPath := a distinguished name MUST be constructed of the form specified for an mSMQSettings object in section 2.2.1, where "<computer name>" is the value of iDirectoryObject.ComputerName, and "<site name>" is the value of the rDirectoryObject.Name returned by the Read Directory event.

  3. If the Delete Object Using LDAP event returns an rStatus that is not DirectoryOperationResult.Success, rStatus MUST be set to the rStatus returned by the Delete Object Using LDAP event, and processing MUST end.

If, as a result of this write operation, one or more of the RoutingServer, DirectoryServer, or SupportingServer ADM element attributes is TRUE, where this condition was also previously true, and one or more of those ADM attributes was written, or the DirectoryServerType or RemoteAccessServer ADM attributes were written, one or more mSMQSettings objects MUST be updated. For each GUID in the SiteIdentifierList ADM attribute, do the following:

  1. Search the Directory for a Site ADM element instance that has an Identifier ADM attribute that matches the GUID:

    1. Generate a Read Directory event with the following arguments:

      • iDirectoryObjectType := "Site"

      • iFilter := An array of the following attribute-filter expressions:

        • "Identifier" EQUALS the current GUID from iDirectoryObject.SiteIdentifierList

      • iAttributeList := An array of the following Site ADM element attribute names:

        • Name

    2. If the rStatus returned by the Read Directory event is set to DirectoryOperationResult.ObjectNotFound, the current GUID MUST be skipped.

    3. If the rStatus returned by the Read Directory event is not set to DirectoryOperationResult.Success, rStatus MUST be set to DirectoryOperationResult.GenericError, and processing MUST end.

  2. A Set Object Properties Using LDAP (section 3.1.6.16) event MUST be generated with the following arguments:

    • iPath := a distinguished name MUST be constructed of the form specified for an mSMQSettings object in section 2.2.1, where "<computer name>" is the value of QueueManager.ComputerName, and "<site name>" is the value of the rDirectoryObject.Name returned by the Read Directory event.

    • iAttributes := a list of attribute name-value pairs consisting of the mSMQSettings attributes listed in the preceding table in this section for which the corresponding mSMQConfiguration attributes appear in ConfigurationAttributeList and the values of those mSMQConfiguration attributes.

  3. If the Set Object Properties Using LDAP event returns an rStatus that is not DirectoryOperationResult.Success, rStatus MUST be set to the rStatus returned by the Set Object Properties Using LDAP event, and processing MUST end.