Symptoms
Hosted Exchange provisioning tasks fail with the following error:
Task ID 27499525
Queue name DomainService00161015
Task name Provide Exchange hosting for organization (ds_id=161015)
Task description Provide Exchange hosting for organization S001120121 DomainService = 161015, SubscriptionId = 1120121
Belongs to groups provide subscription 1120121
Subscription ID 1120121
Queue status Failed
Start not earlier than Aug-07-2015 09:25
Method name addDomainServiceHandler on OBJREF:Exchange:0:getMBXService:731
Last execution output:
Provisioning request failed. Call of method "SW Managed Exchange::CreateGlobalAddressList" failed.
Type: Parallels.Wpe.Utils.WpeProcedureException.
Inner exception(s):
-------------------
Exception calling "Execute" with "3" argument(s): "An Active Directory Constraint Violation error occurred on DC01.provider.local. Additional information: The name reference is invalid.
This may be caused by replication latency between Active Directory domain controllers.
Active directory response: 000020B5: AtrErr: DSID-0315286E, #1:
0: 000020B5: DSID-0315286E, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ff (globalAddressList2)
"
Error position:
At C:\Program Files\Parallels\Windows Provisioning Engine\Providers\Common\ProviderUtils\ProviderUtils.psm1:53 char:26
+ [void]$Context.Execute <<<< ($Provider, $Method, $exec_data)
Type: Parallels.Wpe.PowerShell.PowerShellException.
-------------------
Exception calling "Execute" with "3" argument(s): "An Active Directory Constraint Violation error occurred on DC01.provider.local. Additional information: The name reference is invalid.
This may be caused by replication latency between Active Directory domain controllers.
Active directory response: 000020B5: AtrErr: DSID-0315286E, #1:
0: 000020B5: DSID-0315286E, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ff (globalAddressList2)
"
Type: System.Management.Automation.MethodInvocationException.
-------------------
An Active Directory Constraint Violation error occurred on DC01.provider.local.
Additional information: The name reference is invalid.
This may be caused by replication latency between Active Directory domain controllers.
Active directory response: 000020B5: AtrErr: DSID-0315286E, #1:
0: 000020B5: DSID-0315286E, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ff (globalAddressList2)
Type: System.Management.Automation.RemoteException.
Error from WPE server
-2146233087 (0x80131501)
-- Error: An Active Directory Constraint Violation error occurred on DC01.provider.local. Additional information: The name reference is invalid.
This may be caused by replication latency between Active Directory domain controllers.
Active directory response: 000020B5: AtrErr: DSID-0315286E, #1:
0: 000020B5: DSID-0315286E, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 907ff (globalAddressList2)
(System.Management.Automation.RemoteException)
at Parallels.ExchangeUtils.PowerShell2.PSCommand2.checkErrors(PSDataCollection`1 error)
at Parallels.ExchangeUtils.PowerShell2.PSCommand2.ExecutePipeline(List`1 cmdlets)
at Parallels.ExchangeUtils.PowerShell2.ExecCmdLetAction2.RunCommand(PSCommand2 cmd, PrimitiveTransactionArgs args)
at Parallels.ExchangeUtils.PowerShell2.ExecCmdLetAction2.Process(PrimitiveTransactionArgs args)
at SWsoft.PEM.Transaction.PrimitiveTransactionAction.PrepareToCommitTransaction(PrimitiveTransactionArgs args)
at SWsoft.PEM.Transaction.PrimitiveTransactionAction.Execute(PrimitiveTransactionArgs args)
at SWsoft.PEM.Transaction.PrimitiveTransaction.ExecuteInternal(PrimitiveTransactionAction action)
at SWsoft.PEM.Providers.Exchange2010.GlobalAddressList_CreateAction.Process(PrimitiveTransactionArgs args)
at SWsoft.PEM.Transaction.PrimitiveTransactionAction.PrepareToCommitTransaction(PrimitiveTransactionArgs args)
at SWsoft.PEM.Transaction.PrimitiveTransactionAction.Execute(PrimitiveTransactionArgs args)
at SWsoft.PEM.Transaction.PrimitiveTransaction.ExecuteInternal(PrimitiveTransactionAction action)
at SWsoft.PEM.Providers.Exchange2010.AddressListsAPI.CreateGlobalAddressList(IDictionary`2 args)
at Parallels.Wpe.Proxies.Proxy_Exchange2010ProviderEx.Execute(String ns, String proc, XmlNode pXML)
at Parallels.Wpe.Engine.ProcedureBase.Execute(Context context)
at SWsoft.PEM.Transaction.PrimitiveTransactionAction.PrepareToCommitTransaction(PrimitiveTransactionArgs args)
at SWsoft.PEM.Transaction.PrimitiveTransactionAction.Execute(PrimitiveTransactionArgs args)
at SWsoft.PEM.Transaction.PrimitiveTransaction.ExecuteInternal(PrimitiveTransactionAction action)
at Parallels.Wpe.Engine.Context.Execute(ProcedureBase procedure)
Cause
There is a corrupted GAL on Active Directory.
Resolution
The issue is Microsoft-native and not related to Odin Service Automation. It is recommended to contact Microsoft support team.
However, the following resolution can be helpful in some cases:
Issue the following Powershell script on the Active Directory server in question:
$ad = [ADSI]"LDAP://rootDSE"; $domain = $ad.rootDomainNamingContext; $obj = New-Object System.DirectoryServices.DirectoryEntry("LDAP://CN=Microsoft Exchange,CN=Services,CN=Configuration,$domain"); $count = 0; $Gals1= $obj.GlobalAddressList; foreach($g in $Gals1) { $g= $g.ToString().ToLower(); if($g.Contains("cn=deleted objects")) { Write-Host $g; $count= $count +1; } } Write-Host "$Count corrupted GAL entries found in property GlobalAddressList"; $count = 0; $Gals2= $obj.GlobalAddressList2; foreach($g in $Gals2) { $g= $g.ToString().ToLower(); if($g.Contains("cn=deleted objects")) { Write-Host $g; $count= $count +1; } } Write-Host "$Count corrupted GAL entries found in property GlobalAddressList2";
the output will be like below:
PS C:\> .\check.ps1 cn=test.com gal\0adel:1b6f6184-3e84-44a9-8905-54dd55a7407a,cn=deleted objects,cn=configuration,dc=provider,dc=local 1 corrupted GAL entries found in property GlobalAddressList 0 corrupted GAL entries found in property GlobalAddressList2 PS C:\>
Remove corrupted GALs from script output in : ADSI edit utility > Configuration > Services > CN=Microsoft Exchange > Properties > GlobalAddressList
If there will be corrupted GALs in GlobalAddressList2 - remove them as well.
- Re-run the task