Fasering op basis van MDS-entiteiten kan mislukken wanneer een dubbele batchtagwaarde wordt gebruikt in SQL Server 2012

Dit artikel helpt u bij het oplossen van het probleem waarbij fasering op basis van Master Data Services (MDS) op entiteiten kan mislukken wanneer een dubbele batchtagwaarde wordt gebruikt in SQL Server 2012.

Oorspronkelijke productversie: SQL Server 2012
Origineel KB-nummer: 2712547

Symptomen

Neem het volgende scenario:

  • U gebruikt het faseringsproces van Microsoft SQL Server 2012 MDS op basis van entiteiten om gegevens in MDS te importeren.

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

  • U gebruikt dezelfde BatchTag waarde om een afzonderlijke faseringstabel te vullen die deel uitmaakt van een andere entiteit in een ander MDS-model.

  • U voert de benodigde opgeslagen procedures uit om de batchverwerking te starten. Of u start de faseringsbatch 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

Opmerking

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

In de volgende voorbeelden ziet u hoe u het faseringsproces start met behulp van de opgeslagen faseringsprocedure:

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

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

In dit scenario wordt het volgende foutbericht weergegeven wanneer u het faseringsproces start:

MDSERR310029
De status van de opgegeven batch is ongeldig.

Wanneer u bovendien de batchstatus controleert, ziet u dat de batch met de waarde voor onbepaalde tijd vastloopt in de BatchTag status Actief.

Opmerking

U kunt de batchstatus op de MDS-website controleren 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 het faseringsproces op basis van een MDS-entiteit de BatchTag status controleert, ongeacht het MDS-model.

Oplossing

Als uw batch de status Wordt uitgevoerd heeft, stopt u het batchproces en probeert u de batch opnieuw te verwerken. Als u het batchproces wilt stoppen, voert u de SQL-instructie uit: Exec [mdm].[udpStagingBatchQueueActivate] U kunt dit probleem oplossen door de waarde BatchTag in de faseringstabel voor de records bij te werken naar een nieuwe naam. Zorg er bovendien voor dat het importstatus_ID veld is ingesteld op 0 voor de records.

Meer informatie

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