Filtern der Daten, die während der Synchronisation repliziert werden

Wenn Sie eine Subskription für eine bestimmte Tabelle erstellen (beispielsweise die Tabelle PATIENTEN für Ihre Gruppe mobiler Pflegekräfte), kann es zur Leistungsverbesserung erforderlich sein, nur eine Teilmenge der Daten in der Tabelle zu replizieren. Sie geben diese Untermenge an, indem Sie für jede Tabelle in der Subskription einzelne Zeilen oder Spalten für die Replikation auswählen.

Beispiel: Die einzigen relevanten Spalten für mobile Pflegekräfte, die die Tabelle PATIENTEN nutzen, sind die Felder PATIENTENNAME, ADRESSE, TELEFON und ARZT. Die Datenmenge könnte dann noch weiter eingeschränkt werden, indem eine WHERE-Klausel definiert wird, die die Daten für Pflegekräfte filtert, die für einen bestimmten Arzt arbeiten.

Datenfilter für die Subskription können mit Filtern, die für die Gruppe oder für einzelne Benutzer definiert wurden, kombiniert werden, wodurch sich eine weitere Begrenzung der im Zugriff befindlichen Daten erzielen lässt.

Diese Task ist Teil der größeren Task zum Erstellen einer JDBC-Subskription. Wenn Sie diese Schritte ausgeführt haben, kehren Sie zu JDBC-Subskription erstellen zurück.

Vorgehensweise

Gehen Sie wie folgt vor, um die Daten zu filtern, die während der Synchronisation repliziert werden:

  1. Klicken Sie im Fenster Replikationssubskription definieren auf Erweitert. Das Notizbuch Erweiterte Subskription wird geöffnet.
    Anmerkung:
    Die Primärschlüsselspalten der Quellentabelle müssen subskribiert werden. Wenn in der Quellentabelle Spalten vorhanden sind, die nicht Teil des Primärschlüssels sind, muss mindestens eine dieser Spalten subskribiert werden.
  2. Optional: Wählen Sie die Spalten aus, die in der Subskription verwendet werden sollen.
    1. Rufen Sie die Seite Zielspalten des Notizbuchs Erweiterte Subskription auf.
    2. Wählen Sie mit dem Kontrollkästchen Teilnehmerberechtigung einrichten die Spalten aus, die auf dem mobilen Gerät erstellt werden sollen. Nicht ausgewählte Spalten werden auf dem mobilen Gerät nicht erstellt.
    3. Wählen Sie die in die Spiegeldatenbank zu replizierenden Spalten aus, indem Sie das Kontrollkästchen Replizieren verwenden. Sie müssen möglicherweise eine Spalte in die Spiegeldatenbank replizieren, aber wollen Sie nicht auf dem mobilen Gerät erstellen. Wenn auf dem Server z. B. eine Spalte ohne Standardwert vorhanden ist, die keine Nullwerte enthalten kann, und Sie sie nicht auf dem mobilen Gerät erstellen, müssen Sie sie in die Spiegeldatenbank replizieren und mit dem Standardwertdatenfilter einen Standardwert angeben. Sync Server repliziert alle auf dem mobilen Gerät erstellten Spalten auf die Quelle, wobei der im Standardwertdatenfilter angegebene Standardwert verwendet wird, um die Inhalte der Quellenspalte zu vervollständigen, die keine Nullwerte enthalten kann und für die kein Standardwert auf dem Server vorhanden ist.
    4. Klicken Sie auf Ändern, um einen Zielspaltennamen, einen Standardwertdatenfilter oder eine Integritätsbedingung zu ändern.
    5. Klicken Sie auf Schließen, um das Fenster Index erstellen zu schließen.
  3. Optional: Definieren Sie Indizes für die Zieltabelle.
    1. Rufen Sie die Seite Indizes des Notizbuchs Erweiterte Subskription auf.
    2. Klicken Sie auf Hinzufügen, um das Fenster Index erstellen zu öffnen. Das Fenster Index erstellen wird geöffnet.
    3. Geben Sie den Namen des Index in das Feld Name ein.
    4. Wählen Sie mit den Schaltflächen >, >>, < und << die Spalten aus, die in dem Index enthalten sein sollen.
    5. Ordnen Sie den Index mit den Schaltflächen Nach oben verschieben und Nach unten verschieben.
    6. Wählen Sie für den Index Aufsteigend oder Absteigend aus.
    7. Klicken Sie auf Hinzufügen, um den Index hinzuzufügen.
    8. Klicken Sie auf Schließen, um das Fenster Index erstellen zu schließen.
  4. Optional: Definieren Sie eine WHERE-Klausel, die einzelne Zeilen auswählt, die in die Subskription aufgenommen werden sollen. Selbst wenn alle Spalten im Replikat angezeigt werden, wollen Sie möglicherweise, dass nur bestimmte Zeilen Teil der Subskription sind. Zum Anzeigen der Beispiel-WHERE-Klauseln klicken Sie auf Beispiele.
    1. Rufen Sie die Seite Zeilen des Fensters Erweiterte Subskription auf.
    2. Geben Sie in das Feld Alle erforderlichen Zeilen eine WHERE-Klausel ein, die die Zeilenauswahl definiert, die in der Subskription angezeigt werden sollen. Sie können nur die Zeilen aus der Tabelle auswählen, die Sie in Schritt 1 ausgewählt haben.

      Beispiel: Die mobilen Pflegekräfte sollen nur die Datenzeilen der Tabelle PATIENTEN anzeigen können, in denen die Spalte JOBCODE den Wert MPFLEGE enthält. Hierzu geben Sie die folgende WHERE-Klausel ein:

      JOBCODE='MPFLEGE'
      

      Es ist nicht erforderlich, dass Sie am Anfang der SQL-Klausel WHERE eingeben.

    3. Geben Sie in das Feld Zeilenuntermenge für einzelne Benutzer eine Klausel ähnlich der SQL-Klausel WHERE ein, die die für den einzelnen Benutzer sichtbaren Zeilen einschränkt. Stellen Sie sicher, dass Sie am Anfang der Klausel nicht "WHERE" eingeben. Sie können einen Parameter verwenden, dessen Wert für die unterschiedlichen Benutzer variiert. Genauere Informationen zur Definition von Filtern auf Gruppen- oder Benutzerebene finden Sie in Filtern von Daten auf Subskriptionsebene.

      Beispiel: Benutzer sollen nur Daten sehen dürfen, die zu ihren eigenen Jobcodes in Beziehung stehen. Statt für den Parameter JOBCODE einen fest codierten Wert für die gesamte Subskription einzugeben, definieren Sie eine Variable, die auf den Datenfilterwert verweist, der für jeden einzelnen Benutzer definiert wurde:

      JOBCODE=':JOB'
      

      In den Datenfiltern für einzelne Benutzer können Sie dann den :JOB-Parameter auf den Jobcode jedes Benutzers setzen. Weitere Informationen zum Filtern von Daten für einzelne Benutzer finden Sie in Filtern der für den Benutzer verfügbaren Daten und Filtern von Daten auf Subskriptionsebene.

    4. Klicken Sie auf OK, um das Fenster Erweiterte Subskription zu schließen.
  5. Klicken Sie auf OK, um zum Fenster Replikationssubskription definieren zurückzukehren.

Anmerkung:
Eine Reihe von Änderungen, die zwischen Synchronisationen an einer einzelnen Zeile in einer DB2 Everyplace-Tabelle auf dem Gerät des Benutzers vorgenommen wurden, werden als eine einzelne kumulative Änderung an Sync Server übertragen. Daher wird eine DELETE-Operation gefolgt von einer INSERT-Operation für denselben Primärschlüssel als UPDATE-Operation an Sync Server übertragen, wenn die Operationen ohne dazwischen liegende Synchronisationen stattgefunden haben. Wenn sie mit einer dazwischen liegenden Synchronisation stattfinden, werden sie getrennt übertragen. Wenn Sie eine Reihe von Änderungen in einer einzelnen Zeile vornehmen, kann dies zu Inkonsistenzen führen, da die Subskription nicht alle Spalten zwischen der Quellen- und der Benutzertabelle überträgt. Eine UPDATE-Operation behält die aktuellen Werte in der (den) nicht-subskribierten Spalte(n) bei, während eine INSERT-Operation die nicht-subskribierten Spalte auf Standardwerte setzt.

Zugehörige Konzepte

Zugehörige Tasks