Udostępnij za pośrednictwem


Jak Wdrożenie programu obsługi logika biznesowa artykuł korespondencji seryjnej (Programowanie RMO)

The Microsoft.SqlServer.Replication.BusinessLogicSupport namespace implements an interfejs that enables you to write custom logika biznesowa to handle events that occur during the replikacja łączenia synchronization process. Metody obsługa logika biznesowa mogą być wywoływane przez proces replikacja dla każdego wiersza zmienionych, który jest replikowany podczas synchronizacji.

Ogólny proces stosowania programu obsługa logika biznesowa jest:

  1. Tworzenie wirtualny plik dziennika hander logika biznesowa.

  2. Zarejestrować modułu u dystrybutor.

  3. wdrożyć wirtualny plik dziennika na serwerze, na którym uruchomiony jest Agent korespondencji seryjnej.Aby subskrypcja wciągana agent jest uruchamiany na subskrybenta i subskrypcja wypychanej agent jest uruchamiany na dystrybutor.Podczas korzystania z synchronizacja w sieci Web, agent jest uruchamiany na serwerze sieci Web.

  4. Tworzenie artykułu, który korzysta z programu obsługa logika biznesowa lub modyfikować istniejące artykuł do użyć obsługa logika biznesowa.

Program obsługa logika biznesowa określony jest wykonywany dla każdego wiersza, który jest synchronizowany.Złożone logikę i wywołań do innych aplikacji lub usług sieciowych może obniżyć wydajność.Aby uzyskać więcej informacji na temat obsługi logika biznesowa zobacz Wykonywanie logika biznesowa podczas synchronizowania korespondencji seryjnej.

Aby utworzyć jest obsługa logika biznesowa

  1. W Microsoft Program Visual Studio, tworzenie nowego projektu do wirtualny plik dziennika .NET to zawiera kod, który implementuje obsługa logika biznesowa.

  2. Dodawanie odwołania do projektu w następujących obszarach nazw.

    Odwołanie do wirtualny plik dziennika

    Lokalizacja

    Microsoft.SqlServer.Replication.BusinessLogicSupport

    C:\Program Files\Microsoft SQL Server\100\COM (instalacji domyślnej)

    System.Data

    Pamięci podręcznej GAC (składnik platformy .NET Framework)

    System.Data.Common

    Pamięci podręcznej GAC (składnik platformy .NET Framework)

  3. Add class, który zastępuje BusinessLogicModule Klasa.

  4. Wdrożenie HandledChangeStates() Właściwość, aby wskazać typy zmian, które są obsługiwane.

  5. Zastępowanie jednego lub więcej z następujących metod BusinessLogicModule klasy:

    • CommitHandler(SourceIdentifier, Guid) -wywoływana, gdy zmiana danych jest popełnione podczas synchronizacji.

    • DeleteErrorHandler(SourceIdentifier, DataSet, ErrorLogType%, String%, Int32, String, Int32%, String%) -wywoływane w przypadku wystąpienia błędu, podczas gdy Instrukcja DELETE jest w trakcie przekazywania lub pobierania.

    • DeleteHandler(SourceIdentifier, DataSet, Int32%, String%) -wywoływana, gdy są instrukcji DELETE przekazywania lub pobierania.

    • InsertErrorHandler(SourceIdentifier, DataSet, ErrorLogType%, String%, Int32, String, Int32%, String%) -wywoływane w przypadku wystąpienia błędu podczas instrukcja INSERT jest przekazywania lub pobierania.

    • InsertHandler(SourceIdentifier, DataSet, DataSet%, Int32%, String%) -wywoływana, gdy są instrukcji INSERT przekazywania lub pobierania.

    • UpdateConflictsHandler(DataSet, DataSet, DataSet%, ConflictLogType%, String%, Int32%, String%) -wywoływana, gdy sprzeczne instrukcji UPDATE występują Wydawca i subskrybent.

    • UpdateDeleteConflictHandler(SourceIdentifier, DataSet, DataSet%, ConflictLogType%, String%, Int32%, String%) -wywoływana, gdy instrukcji UPDATE wchodzą w konflikt z instrukcji DELETE Wydawca i subskrybent.

    • UpdateErrorHandler(SourceIdentifier, DataSet, ErrorLogType%, String%, Int32, String, Int32%, String%) -wywoływane w przypadku wystąpienia błędu, gdy instrukcja UPDATE jest przekazywania lub pobierania.

    • UpdateHandler(SourceIdentifier, DataSet, DataSet%, Int32%, String%) -wywoływana, gdy są instrukcji UPDATE przekazywania lub pobierania.

    Uwaga

    Wszystkie konflikty artykuł, nie zostało obsłużonych przez użytkownika niestandardowe reguły biznesowe są obsługiwane przez program rozpoznawania nazw domyślnych dla artykuł.

  6. Skompiluj projekt w celu utworzenia wirtualny plik dziennika programu obsługa logika biznesowa.

Aby zarejestrować programu obsługa logika biznesowa

  1. Utwórz połączenie dystrybutor przy użyciu ServerConnection Klasa.

  2. Utworzenie wystąpienie ReplicationServer Klasa. Przekazywanie ServerConnection w kroku 1.

  3. Wywołanie EnumBusinessLogicHandlers() i sprawdź, czy zwrócona ArrayList obiekt, aby upewnić się, że wirtualny plik dziennika nie został już zarejestrowany jako programu obsługa logika biznesowa.

  4. Utworzenie wystąpienie BusinessLogicHandler Klasa. Należy określić następujące właściwości:

    • DotNetAssemblyName() -Nazwa wirtualny plik dziennika .NET.Jeśli zespół nie został wdrożony w tym samym katalogu, co Agent Scal wykonywalne, w tym samym katalogu co aplikacja, która uruchamia synchronicznie Agent korespondencji seryjnej lub w pamięci podręcznej GAC, musi zawierać pełną ścieżka z nazwą wirtualny plik dziennika.Podczas synchronizacja w sieci Web przy użyciu programu obsługa logika biznesowa, należy dołączyć pełną ścieżka z nazwą wirtualny plik dziennika.

    • DotNetClassName() -w pełni kwalifikowana nazwa klasy, który zastępuje BusinessLogicModule i implementuje obsługa logika biznesowa.

    • FriendlyName() -przyjazną nazwę używanego podczas uzyskiwania dostępu obsługa logika biznesowa.

    • IsDotNetAssembly() -wartość true.

wdrożyć programu obsługa logika biznesowa

  • wdrożyć wirtualny plik dziennika na serwerze, na których działa agent korespondencji seryjnej w lokalizacji określonej podczas obsługi logika biznesowa została zarejestrowana u dystrybutor.Aby subskrypcja wciągana agent jest uruchamiany na subskrybenta i subskrypcja wypychanej agent jest uruchamiany na dystrybutor.Podczas korzystania z synchronizacja w sieci Web, agent jest uruchamiany na serwerze sieci Web.Pełna ścieżka nie był dołączony do nazwy wirtualny plik dziennika, podczas obsługa logika biznesowa został zarejestrowany, należy rozmieścić wirtualny plik dziennika w tym samym katalogu, co Agent Scal wykonywalne, w tym samym katalogu co aplikacja, która uruchamia synchronicznie Agent korespondencji seryjnej.Można zainstalować wirtualny plik dziennika w pamięci podręcznej GAC, jeśli istnieje wiele aplikacji, które używają tego samego wirtualny plik dziennika.

Aby używać programu obsługa logika biznesowa z nowego artykuł tabela

  1. Utwórz połączenie Wydawca przy użyciu ServerConnection Klasa.

  2. Utworzenie wystąpienie MergeArticle Klasa. zestaw następujące właściwości:

    • Nazwę artykuł dla Name().

    • Nazwa publikacjaPublicationName().

    • Nazwa publikacja bazy danych DatabaseName().

    • Przyjazna nazwa (obsługa logika biznesowaFriendlyName()) dla ArticleResolver().

  3. Wywołanie Create() Metoda. Aby uzyskać więcej informacji zobacz Jak Definiowanie artykułu (Programowanie RMO).

Używanie programu obsługa logika biznesowa z artykuł istniejącej tabela

  1. Utwórz połączenie Wydawca przy użyciu ServerConnection Klasa.

  2. Utworzenie wystąpienie MergeArticle Klasa.

  3. zestaw Name(), PublicationName(), a DatabaseName() właściwości.

  4. zestaw połączenia z kroku 1 do ConnectionContext() Właściwość.

  5. Wywołanie LoadProperties() Metoda uzyskać właściwości obiektu. Jeśli ta metoda zwraca false, albo właściwości artykuł w kroku 3 zostały niepoprawnie określone artykułu nie istnieje lub nie. Aby uzyskać więcej informacji zobacz Jak Umożliwia wyświetlanie i modyfikowanie właściwości artykułu (Programowanie RMO).

  6. zestaw przyjazną nazwę obsługa logika biznesowa ArticleResolver(). Jest to wartość FriendlyName() Właściwość określona podczas rejestrowania obsługa logika biznesowa.

Example

W tym przykładzie jest obsługa logika biznesowa, która rejestruje informacje o wstawia aktualizacje, aktualizacje i usuwa przez subskrybent.

W tym przykładzie rejestruje program obsługa logika biznesowa u dystrybutor.

W tym przykładzie zmienia istniejące artykuł do użyć obsługa logika biznesowa.