Symptoms

Task 'Update MS DNS server' fails with error message 'CreateResourceRecord error, WMI Error: Failed, Message: Generic failure' like in the example below:

 Task name:         Update MS DNS server 1
 Task description:  Make dns zones hosted on MS DNS server 1 up to date
 Output:        Exception during execution of MPF request: 'Unknown error 0x80131500
 [<response><errorContext description="CreateResourceRecord error,
 WMI Error: Failed, Message: Generic failure " code="0x80131500"
 executeSeqNo="139"><errorSource namespace="DNSManager"
 procedure="CreateResourceRecord"/></errorContext></response>]'.

Cause

Task fails to create DNS records on MS DNS server as it is pointed in error message - procedure CreateResourceRecord can not be executed correctly due to some problems with DNS zone, e.g. duplicated records in DNS zone, missing DNS zone in MS DNS server, wrong format of records and so on.

The task Update MS DNS server may update many zones at once, so it is hard to find which exactly zone can not be updated among all zones listed in the request to MS DNS server.

This article will not describe all possible reasons of problem with creating DNS records in MS DNS server, instead it will show the way how to find problem zone to investigate what is wrong with it.

Possible reasons with creating/updating domain zones on MS DNS server:

  • POA requests to update domain zone which is absent on MS DNS server (it was probably not created at all or removed manually)
  • CNAME and A records conflict between each other in domain zone

Resolution

To find problem domain zone use the steps below.

  1. Remember value of the parameter 'executeSeqNo' in the error message, it is executeSeqNo="139" in the example above.

  2. Log into MPS server, start the utility 'TraceView' and reschedule failed task in POA right after that.

  3. Wait until 'TraceView' catch request from POA and stop capturing further requests immediately.

    Important: do not wait for completion of the task as 'TraceView' will eat much memory and it will effectively put MPS server on its knees.

  4. Copy request which was sent to MPS from 'Traceview' and save it on some Linux host e.g. as 'mpf_req.xml'. Close 'TraceView' on MPS server.

    Note: requests from POA are being sent not only to MPS server, they are being sent to the POA Agent on the needed host as well (in this case it is MS DNS server), however POA Agent log pem.log is not suitable for this case as there is another sequence of "<execute>" tags.

  5. Execute the following commands on Linux host where you saved the file 'mpf_req.xml' using value of the parameter 'executeSeqNo' from point #1 above:

    $ export executeSeqNo="139"
    $ export file_name=mpf_req.xml
    $ export row_num=`grep -n "<execute " $file_name | head -n $executeSeqNo | tail -n 1 | awk -F: '{print $1}'`
    $ head -n $[row_num+20] $file_name | tail -n 20
    

Output will be like this:

 <after destination="data" destinationPath="log" source="context" />
 <after destination="data" destinationPath="log" source="executeData" />
-<executeData>
 <adminAccount>pem_admin</adminAccount>
 <adminPassword>**********</adminPassword>
 <okIfExists>true</okIfExists>
 <recordType>MicrosoftDNS_NSType</recordType>
 <serverIdentifier>dns01.provider.com</serverIdentifier>
 <zoneName>domain.com</zoneName>
-<properties>
 <property name="ContainerName">domain.com</property>
 <property name="DnsServerName">dns01.provider.com</property>
 <property name="NSHost">dns0.nameserver.com.</property>
 <property name="OwnerName">demo-test20.demo-test20</property>
 <property name="TTL">3600</property>
 </properties>
 </executeData>
 </execute>
 </procedure>
 </request>

See name of problem DNS zone in the output above - <zoneName>domain.com.</zoneName>.

And you may what execatly it is trying to put in corresponding msdnz zone on name server. Now you may investigate what is wrong with the domain zone, solve the problem with it and re-schedule task 'Update MS DNS server' in POA after that.

Internal content