Dela via


Begrepp för COM+-synkronisering

Vanligtvis krävs inte synkronisering när du har en enkeltrådad lägenhet (STA) eftersom lägenheten tillhandahåller synkroniseringen åt dig. Synkronisering blir viktigt när du har en flertrådad lägenhet (MTA) och ett fritrådat objekt. Tidigare har fritrådade objekt varit tvungna att hantera låsning. Du kan eliminera behovet av att använda låsning genom att ange synkroniseringsattributet för en komponent.

Synkroniseringen har följande egenskaper:

  • Tillåter att en anropare anger komponenten i taget.
  • Förbjuder flöde över process eller över dator.
  • Flödar från komponent till komponent i en process.
  • Tillåter återaktivering från samma anropare.

Till skillnad från lägenheter omfattar aktiviteter kontexter från flera processer och värdar. Synkronisering avgör vilken aktivitet som ska innehålla ett objekt. Objekt kan finnas i någon av följande aktiviteter:

  • Skaparens aktivitet
  • Ny aktivitet
  • Ingen aktivitet

COM+ säkerställer samtidighet med en serie lås för varje aktivitet. Om en anropare försöker ange en COM+-synkroniserad komponent som redan används av en annan anropare blockeras anropet tills låset släpps. Det här blockerande beteendet går inte ut på tid och kan inte konfigureras att avslutas automatiskt. Om låset inte används, hämtas det och anropet bearbetas. När du har slutfört det släpps låset för nästa anropare. För att förhindra dödläge hanterar COM+ åtkomst till alla objekt mellan aktiviteter genom en kapslad serie anrop som är länkade i hela nätverket.

COM+ innehåller följande synkroniseringsinställningar:

  • Handikappad
  • Stöds inte
  • Stödd
  • Krävs
  • Kräver något nytt

Not

Vissa synkroniseringsinställningar fungerar tillsammans med andra COM+-komponentinställningar. Synkronisering krävs till exempel om JIT-aktiveringstjänsten (COM+ just-in-time) är aktiverad. JIT krävs om du aktiverar transaktioner. Därför kräver COM+ transaktionsbearbetning även synkronisering. Klasser med inställningen JIT=True måste därför också ha inställningen Synchronization=Required eller Synchronization=RequiresNew.

 

Anvisningar om hur du ställer in synkroniseringsalternativ med hjälp av administrationsverktyget för Komponenttjänster finns i Ange synkroniseringsattributet.

Mer information om hur du använder COM+-administrationsbiblioteket för att ange synkroniseringsalternativ finns i Automatisera COM+ Administration.

COM+ Synkroniseringsuppgifter