3.1.6.1.1.2 Creation

  1. If iAttributeList was not provided as an argument, an iAttributeList MUST be constructed that MUST contain the names of all QueueManager ADM element attributes listed in section 3.1.6.20.1, except ConnectedNetworkIdentifierList.

  2. Let ConfigurationAttributeList be a list of mSMQConfiguration attribute names, initialized to be empty. For each mSMQConfiguration attribute listed in the following table, if the corresponding QueueManager ADM element attribute name appears in iAttributeList and that attribute is populated in iDirectoryObject, add the mSMQConfiguration attribute name to ConfigurationAttributeList and compute the value for the attribute as shown. QueueManager ADM element attribute names that appear in iAttributeList but that do not appear in the following table or in subsections referenced by the table MUST be ignored.

    mSMQConfiguration attribute

    Attribute value computation

    mSMQComputerTypeEx ([MS-ADA2] section 2.533)

    Directory string transformed from iDirectoryObject.QueueManagerVersion.

    mSMQOSType ([MS-ADA2] section 2.556)

    Computed from iDirectoryObject.OperatingSystemType. See section 3.1.6.1.1.4.

    mSMQServiceType ([MS-ADA2] section 2.570)

    Computed from iDirectoryObject.DirectoryServer, iDirectoryObject.DirectoryServerType, iDirectoryObject.RemoteAccessServer, and iDirectoryObject.RoutingServer. See section 3.1.6.1.1.5.

    mSMQQuota ([MS-ADA2] section 2.566)

    Integer copied from iDirectoryObject.QueueManagerQuota.

    mSMQJournalQuota ([MS-ADA2] section 2.548)

    Integer copied from iDirectoryObject.JournalQuota.

    mSMQForeign ([MS-ADA2] section 2.543)

    If iDirectoryObject.ForeignSystem is TRUE,

    mSMQForeign is 0x01

    Else

    mSMQForeign is 0x00.

    mSMQSites ([MS-ADA2] section 2.582)

    List of GUIDs copied from iDirectoryObject.SiteIdentifierList.

    mSMQOutRoutingServers ([MS-ADA2] section 2.557)

    Computed from iDirectoryObject.OutRoutingServerIdentifierList. See section 3.1.6.1.1.6.

    mSMQInRoutingServers ([MS-ADA2] section 2.544)

    Computed from iDirectoryObject.InRoutingServerIdentifierList. See section 3.1.6.1.1.7.

    mSMQRoutingServices ([MS-ADA2] section 2.568)

    If iDirectoryObject.RoutingServer is TRUE,

    mSMQRoutingServices is 0x01

    Else

    mSMQRoutingServices is 0x00.

    mSMQDsServices ([MS-ADA2] section 2.541)

    If iDirectoryObject.DirectoryServer is TRUE,

    mSMQDsServices is 0x01

    Else

    mSMQDsServices is 0x00.

    mSMQDependentClientServices ([MS-ADA2] section 2.537)

    If iDirectoryObject.SupportingServer is TRUE,

    mSMQDependentClientServices is 0x01

    Else

    mSMQDependentClientServices is 0x00.

    mSMQEncryptKey ([MS-ADA2] section 2.542)

    MQDSPUBLICKEYS structure ([MS-MQMQ] section 2.2.2) copied from iDirectoryObject.PublicEncryptionKeyList.

    nTSecurityDescriptor ([MS-ADA3] section 2.37)

    Computed from iDirectoryObject.Security. See section 3.1.6.1.1.8.

  3. A Create Object Using LDAP (section 3.1.6.12) event MUST be generated with the following arguments:

    • iParentPath := a distinguished name of the form specified for a computer object in section 2.2.1, where "<computer name>" is the value of iDirectoryObject.ComputerName

    • iChildName := "msmq"

    • iObjectClass := "mSMQConfiguration"

    • iAttributes := a list of name-value pairs consisting of the attribute names in ConfigurationAttributeList and the corresponding values, as computed in step 2.

  4. If the Create Object Using LDAP event returns an rStatus value of DirectoryOperationResult.ObjectAlreadyExists, a Get Object Properties Using LDAP (section 3.1.6.14) event MUST be generated with the following arguments:

    • iPath := a distinguished name of the form specified for mSMQConfiguration in section 2.2.1, where "<computer name>" is the value of iDirectoryObject.ComputerName

    • iAttributes := a list containing the attribute name "objectGUID"

      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, rObjectGUID is undefined, and processing MUST end. Otherwise, rStatus is set to the first element in rValues returned by the Get Object Properties Using LDAP event.

  5. Else 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, rObjectGUID is undefined, and processing MUST end. Otherwise, rObjectGuid is set to the rObjectGuid returned by the Create Object Using LDAP event.