Dette hotfix gælder også for Microsoft SQL Server 2014 Analysis Services (SSAS 2014).
Symptomer
Antag, at du har nogle dimensioner i Microsoft SQL Server 2012 Analysis Services (SSAS 2012) eller SQL Server 2014 Analysis Services (SSAS 2014)-kuben (Tfs_Analysis), der indeholder dataene til Microsoft Visual Studio Team Foundation Server (TFS). Når du kører en proceskommando mod dimensionerne, kan behandlingen mislykkes, og du modtager følgende fejlmeddelelse:
Bemærk
Intern fejl: Der opstod en uventet fejl (filen 'pfiallocator.cpp', linje 822, funktionen 'PFMemoryHolder::RegisterMemoryHolder').
Hvis du bruger SQL Profiler til at spore problemet, viser sporingen, at følgende fejlmeddelelse opstår under kommandoen ProcessFull på vDimWorkItemTreeOverlay-dimensionen:
Bemærk
Intern fejl: Der opstod en uventet fejl (filen 'pfiallocator.cpp', linje 822, funktionen 'PFMemoryHolder::RegisterMemoryHolder'). Fejl i OLAP-lagringsprogrammet: Der opstod en fejl, mens attributten 'WorkItemTreeSK' for dimensionen 'Træ for arbejdselement' fra databasen 'Tfs_Analysis' blev behandlet.
Bemærk, at behandlingsfejlen påvirker Analysis Services-databasedesign, der har datakilder, der bruger den administrerede .NET Framework-dataprovider til SQL Server, som er System.Data.SqlClient.
Årsag
Problemet opstår, fordi en dubletdimensionsnøgleværdi i datakilden bruges af Analysis Services-behandlingen.
Løsning
Problemet blev først løst i følgende kumulative opdatering af SQL Server.
Samlet opdatering 1 til SQL Server 2014 /en-us/help/2931693
Kumulativ opdatering 6 til SQL Server 2012 SP1 /en-us/help/2874879
Om kumulative opdateringer til SQL Server
Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:
- Seneste kumulative opdatering til SQL Server 2014
- Seneste kumulative opdatering til SQL Server 2012 SP1
Flere oplysninger
Når du har anvendt hotfixet, fungerer behandlingen i overensstemmelse med indstillingerne for konfiguration af behandlingsfejl i stedet for i henhold til interne fejlsymptomer.
Du kan styre funktionsmåden ved hjælp af indstillingen Dubletnøgle, når du behandler SSAS-dimensionerne. Eller du kan styre funktionsmåden ved at konfigurere egenskaben KeyDuplicate for egenskaben ErrorConfiguration på følgende måde, når du designer dimensionerne:
- Når indstillingen KeyDuplicate er indstillet til standardindstillingen IgnoreError, er der ingen advarsler, når der registreres en dubletnøgleværdi, og behandlingen fortsætter.
- Når indstillingen KeyDuplicate er indstillet til ReportAndContinue, rapporteres fejlene eller advarslerne. Behandlingen fortsætter dog.
- Når indstillingen KeyDuplicate er indstillet til ReportAndStop, rapporteres fejlene eller advarslerne, og behandlingen stoppes.
Status
Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Løsning
Du kan løse problemet ved at slette den ugyldige dubletnøgle i datavarehusdimensionstabellerne i SQL Server Database Engine. Du kan bruge følgende forespørgsel til at finde dubletnøglen:SELECT COUNT(WorkItemTreeSK) WorkItemTreeSKCount, WorkItemTreeSK
FROM [Tfs_Warehouse].dbo.vDimWOrkItemTreeOverlay
GROUP BY WorkItemTreeSK
HAVING COUNT(WorkItemTreeSK) >1
Referencer
Du kan finde flere oplysninger om behandlingsmuligheder og -indstillinger på følgende Microsoft-websted:
Oplysninger om behandlingsmuligheder og -indstillinger Du kan finde flere oplysninger om, hvordan du behandler lagerstedet eller kuben manuelt, på følgende MSDN-websted:
Behandle datavarehuset og Analysis Services-kuben for Team Foundation Server manuelt