KB2876882 - FIX: 'Interne fout: er is een onverwachte fout opgetreden' wanneer u een opdracht 'Proces' uitvoert op de TFS SSAS-kubus

Van toepassing op
SQL Server 2012 Analysis Services

Deze hotfix is ook van toepassing op Microsoft SQL Server 2014 Analysis Services (SSAS 2014).

Symptomen

Stel dat u enkele dimensies hebt in de kubus Microsoft SQL Server 2012 Analysis Services (SSAS 2012) of SQL Server 2014 Analysis Services (SSAS 2014) (Tfs_Analysis) die de gegevens voor Microsoft Visual Studio Team Foundation Server (TFS) bevat. Wanneer u een procesopdracht uitvoert op de dimensies, kan de verwerking mislukken en wordt het volgende foutbericht weergegeven:

Opmerking

Interne fout: Er is een onverwachte fout opgetreden (bestand 'pfiallocator.cpp', regel 822, functie 'PFMemoryHolder::RegisterMemoryHolder').

Als u SQL Profiler gebruikt om het probleem te traceren, geeft de trace aan dat het volgende foutbericht optreedt tijdens de opdracht ProcessFull op de vDimWorkItemTreeOverlay-dimensie:

Opmerking

Interne fout: Er is een onverwachte fout opgetreden (bestand 'pfiallocator.cpp', regel 822, functie 'PFMemoryHolder::RegisterMemoryHolder'). Fouten in de OLAP-opslagengine: er is een fout opgetreden terwijl het kenmerk 'WorkItemTreeSK' van de dimensie 'Work Item Tree' uit de database 'Tfs_Analysis' werd verwerkt.

Opmerking: De verwerkingsfout heeft betrekking op Analysis Services-databaseontwerpen met gegevensbronnen die gebruikmaken van de beheerde .NET Framework gegevensprovider voor SQL Server, te weten System.Data.SqlClient.

Oorzaak

Het probleem treedt op omdat een dubbele dimensiesleutelwaarde in de gegevensbron wordt gebruikt door de Analysis Services-verwerking.

Oplossing

Het probleem werd voor het eerst opgelost in de volgende cumulatieve update van SQL Server.

Cumulatieve update 1 voor SQL Server 2014 /nl-nl/help/2931693

Cumulatieve update 6 voor SQL Server 2012 SP1 /nl-nl/help/2874879

Informatie over cumulatieve updates voor SQL Server

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die deel uitmaakten van de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:

      

Meer informatie

Nadat u de hotfix hebt toegepast, zal de verwerking zich gedragen op basis van de configuratie-instellingen voor verwerkingsfouten in plaats van op basis van interne foutsymptomen.

U kunt het gedrag bepalen met de instelling Duplicaatsleutel wanneer u de SSAS-dimensies verwerkt. U kunt het gedrag ook als volgt bepalen door de eigenschap KeyDuplicate van de eigenschap ErrorConfiguration als volgt te configureren wanneer u de dimensies ontwerpt:

  • Wanneer de KeyDuplicat-instelling is ingesteld op de standaardinstelling IgnoreError, zijn er geen waarschuwingen wanneer een dubbele sleutelwaarde wordt aangetroffen en wordt de verwerking voortgezet.
  • Wanneer de instelling KeyDuplicate is ingesteld op ReportAndContinue, worden de fouten of waarschuwingen gerapporteerd. De verwerking gaat echter door.
  • Wanneer de instelling KeyDuplicate is ingesteld op ReportAndStop, worden de fouten of waarschuwingen gerapporteerd en wordt de verwerking gestopt.

      

Status

Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in het gedeelte 'Van toepassing op'.

Tijdelijke oplossing

U kunt dit probleem omzeilen door de ongeldige dubbele sleutel in de dimensietabellen datawarehouse in SQL Server Database Engine te verwijderen. U kunt de volgende query gebruiken om de dubbele sleutel te vinden:SELECT COUNT(WorkItemTreeSK), WorkItemTreeSKCount, WorkItemTreeSK
FROM [Tfs_Warehouse].dbo.vDimWOrkItemTreeOverlay
GROUP BY WorkItemTreeSK
HAVING COUNT(WorkItemTreeSK) >1

Meer informatie

Ga naar de volgende MSDN-website voor meer informatie over verwerkingsopties en instellingen:

Informatie over verwerkingsopties en instellingen Ga naar de volgende MSDN-website voor meer informatie over het handmatig verwerken van het magazijn of de kubus:

De datawarehouse en de Analysis Services-kubus voor Team Foundation Server handmatig verwerken