MDS op entiteit gebaseerde fasering kan mislukken wanneer een dubbele batchlabelwaarde wordt gebruikt in SQL Server 2012

In dit artikel kunt u het probleem oplossen waarbij Master Data Services (MDS) op entiteit gebaseerde enscenering kan mislukken wanneer een dubbele batchlabelwaarde wordt gebruikt in SQL Server 2012.

Oorspronkelijke productversie:   SQL Server 2012
Oorspronkelijk KB-getal:   2712547

Symptomen

Neem het volgende scenario:

  • U gebruikt het Microsoft SQL Server 2012 MDS op entiteit gebaseerd faseringsproces om gegevens te importeren in MDS.

  • U vult verschillende MDS ensceneringstabellen (stg.name) BatchTag met de faseringsgegevens door de kolom te gebruiken om de batch te identificeren.

  • U gebruikt dezelfde waarde om BatchTag een afzonderlijke faseringstabel te vullen die behoort tot een andere entiteit in een ander MDS model.

  • U kunt de benodigde opgeslagen procedures uitvoeren om de batchverwerking te starten. Of u start de batch met de fasering vanuit het functionele gebied Integratiebeheer op de MDS website.

Wanneer u het faseringsproces start, gebruikt u een van de drie opgeslagen procedures:

  • stg.udp_name_Leaf

  • stg.udp_name_Consolidated

  • stg.udp_name_Relationship

Notitie

De <name> tijdelijke aanduiding is de naam van de faseringstabel die is opgegeven toen de entiteit werd gemaakt.

In de volgende voorbeelden wordt be informatie gegeven over het starten van het faseringsproces met behulp van de opgeslagen procedure voor het uitvoeren van de fasering:

  • exec mds.stg.udp_entityname1 'versionAdescription',0,'batchtag'

  • exec mds.stg.udp_entityname2 'versionBdescription',0,'batchtag'

In dit scenario ontvangt u het volgende foutbericht wanneer u het faseringsproces start:

MDSERR310029
De status van de opgegeven batch is niet geldig.

Wanneer u de batchstatus controleert, ziet u bovendien dat de batch BatchTag met de waarde voor onbepaalde tijd vast blijft zitten in de status Uitvoeren.

Notitie

U kunt de batchstatus controleren vanaf de MDS website door op Integratiebeheer te klikken en vervolgens het model te selecteren om de status weer te geven of door een query uit te voeren op de [mdm].[tblStgBatch] tabel.

Oorzaak

Dit probleem treedt op omdat MDS op entiteit gebaseerde faseringsproces BatchTag de status controleert, ongeacht het MDS model.

Oplossing

Als de batch vastzit in de status Uitvoeren, stopt u het batchproces en probeert u de batch opnieuw te verwerken. Als u het batchproces wilt stoppen, moet u de SQL uitvoeren: Exec [mdm].[udpStagingBatchQueueActivate] Als u dit probleem wilt oplossen, moet u de batchtagwaarde in de faseringstabel voor de records bijwerken naar een nieuwe naam. Zorg er ook voor dat het veld importstatus_ID is ingesteld op 0 voor de records.

Meer informatie

Ga naar de volgende website voor meer informatie over het starten van het faseringsproces: