Kör affärslogik under sammanslagningssynkronisering

Gäller för:SQL Server

Med ramverket för affärslogikhanterare kan du skriva en hanterad kodsammansättning som anropas under synkroniseringsprocessen för sammanslagning. Assembleren innehåller affärslogik som kan svara på ett antal villkor under synkronisering: dataändringar, konflikter och fel. Business Logic Handler-ramverket erbjuder en enkel programmeringsmodell, och datan som sammanslagningsprocessen tillhandahåller till din assembler är i form av en ADO.NET-datamängd, så du kan använda kunskap om ADO.NET istället för att lära dig ett proprietärt gränssnitt. För mer information om programmering av affärslogikhanterare, se:

Användningsområden för affärslogikhanterare

Sammanslagningssynkroniseringsprocessen kan anropa affärslogikhanterare för att utföra:

  • Hantering av anpassade ändringar

  • Anpassad konfliktlösning

  • Anpassad fellösning

Note

Den affärslogikhanterare som du anger körs för varje rad som synkroniseras. Komplex logik och anrop till andra applikationer eller nätverkstjänster kan påverka prestandan.

Anpassad ändringshantering

Affärslogikhanteraren kan anropas under bearbetningen av icke-konfliktfyllda dataändringar och kan utföra en av tre åtgärder:

  • Avvisa datan

    Detta är användbart för applikationer som inte vill att ändringar ska spridas till eller från en given prenumerant. Till exempel kan en administratör filtrera bort insättningar som inte hör hemma i prenumerantens partition, eller eventuellt avvisa borttagningar som utförts hos en prenumerant. Som ett annat exempel kan en applikation avslå en beställning som läggs in hos en abonnent eftersom lageret inte längre är tillgängligt.

  • Acceptera datan

    Detta är användbart för applikationer där det är nödvändigt att granska dataändringar som gjorts hos antingen Publisher eller Subscriber innan de tillåts spridas. Till exempel kan en applikation i mellanklassen undersöka nya beställningar som kommer in från fältet och integreras med en upphandlingsprocess i mellannivå.

  • Använd anpassade data

    Detta är användbart för applikationer som behöver åsidosätta specifika datavärden eller operationer. Till exempel kan en applikation omvandla en radborttagning till en speciell uppdatering som sätter en statuskolumn i raden till värdet "raderad" och sedan spårar identiteten på klienten som utför borttagningen. Detta kan vara användbart för revision eller arbetsflöden.

Anpassad konfliktlösning

Sammanslagningsreplikering ger konfliktupptäckt och lösning, vilket gör att du kan acceptera en standardlösning eller välja anpassad lösning för konflikter. Mer information finns i Avancerad identifiering och lösning av konflikter vid sammanfogningsreplikering. Affärslogikhanteraren kan anropas under bearbetningen av motstridiga dataändringar och kan utföra en av två åtgärder:

  • Acceptera standardupplösning

    Detta är användbart för applikationer som kan behöva granska konflikten, utföra ytterligare åtgärder och eventuellt logga ett anpassat konfliktloggmeddelande.

  • Använd anpassad upplösning

    Detta är användbart för applikationer som kan behöva välja datavärden som är specifika för deras affärslogik och tillhandahålla synkroniseringsprocessen med denna anpassade datamängd. Till exempel kan en applikation tillhandahålla en ny version av vinnande raden genom att kombinera värden från Publisher- och Subscriber-datamängderna.

Anpassad fellösning

Anpassad logik kan anropas under spridningen av ändringar som leder till fel. Logiken kan utföra en av två åtgärder:

  • Acceptera standardfellösning

    Detta är användbart för applikationer som kan behöva granska felet och utföra ytterligare åtgärder och eventuellt logga ett anpassat felloggmeddelande.

  • Acceptera anpassad fellösning

    Detta är användbart för applikationer som kan behöva välja datavärden som är specifika för deras affärslogik och tillhandahålla synkroniseringsprocessen med denna anpassade datamängd. Till exempel, om replikeringsprocessen stöter på ett brott mot unik nyckel, kan hanteraren för affärslogik tillhandahålla en ny version av dataändringen i vilken nyckeln inte längre orsakar en konflikt. Ändringar som görs hos Publisher och Subscriber kan sedan finnas kvar i databasen, och replikeringsprocessen behöver inte kompensera för misslyckad insättning med en borttagning.

Driftsättningsscenarier för hanterare för affärslogik

Hanterare för affärslogik kan driftsättas på:

  • Distributören. Använd en push-prenumeration så att affärslogiken körs hos distributören.

  • Prenumeranten. Använd en pull-prenumeration så att affärslogiken körs på prenumeranten.

  • En Internet Information Services (IIS)-server om webbsynkronisering används. Använd en pull-prenumeration synkroniserad med webbsynkronisering, och affärslogikhanteraren kommer att köras på IIS-servern.