Dieser Abschnitt enthält die XML Scripting-Dokumententypdefinition (Document Type Definition, DTD). Weitere Informationen finden Sie in Einsetzen des XML Scripting Tools.
<!ELEMENT Root ( AddJdbcMaster | AddReplMaster | AddJdbcMirror | AddReplMirror | AddGroup | AddUser | AddSubscriptionSet | AddJdbcSubscription | AddFileSubscription | AddDproprSubscription |AddUploadSubscription | AddCustomSubscription | AddAdapter | AddServer | ResetUser | ResetGroup | ResetAll | RemoveJdbcMaster | RemoveReplMaster | RemoveJdbcMirror | RemoveReplMirror | RemoveGroup | RemoveUser | RemoveSubscriptionSet | RemoveSubscription | RemoveAdapter | RemoveServer | AlterUser | AlterGroup | AlterFileSubscription | AlterJdbcSubscription | AlterUploadSubscription | AlterDproprSubscription | AlterSubscriptionSet | AlterJdbcMaster | AlterJdbcMirror | AlterReplMaster | AlterReplMirror | AlterAdapter )*> <!--Ein NULL-Element unter einem Knoten bedeutet, dass der Wert des Knotens null ist. Dies ist notwendig, damit Null-Werte in die Datenbank eingefügt werden können. Einige (unten aufgelistete) Elemente lassen es zu, dass Null-Werte angegeben werden.--> <!ELEMENT NULL EMPTY> <!--Auf Master- und Spiegeldatenbanken bezogene Befehle: DB2 Everyplace Sync Server repliziert Daten aus den Masterdatenbanken (bzw. Quellendatenbanken) auf die Spiegeldatenbanken und synchronisiert dann die Spiegeldatenbanken mit den mobilen Geräten. Daher muss eine replizierte Subskriptionsdefinition auf eine Quellen- und eine Spiegeldatenbank verweisen. Es gibt zwei Typen von Spiegeldatenbanken und Masterdatenbanken, je nach Art der Replikationstechnik: JDBC (Java Database Connectivity) und DPropR (DataPropagator Relational). DPropR- Master- und DPropR-Spiegeldatenbanken werden mit der DB2-Replikation repliziert. Daher müssen sowohl die Master- als auch die Spiegeldatenbanken DB2-Datenbanken sein. JDBC-Master- und JDBC-Spiegeldatenbanken werden mit dem Sync Server-JDBC-Replikationssystem repliziert. Die Masterdatenbank (Quellendatenbank) kann jede beliebige Datenbank sein, die über einen gut funktionierenden JDBC-Treiber verfügt. Die Spiegeldatenbank muss eine DB2-Datenbank sein. Bestimmte Datentypzuordnungen werden für eine erfolgreiche Replikation (von der Master- zur Spiegeldatenbank) von Sync Server vorgenommen, wenn es sich bei der Masterdatenbank nicht um eine DB2-Datenbank handelt. Einige Datentypen in der Quellendatenbank werden möglicherweise nicht unterstützt. Bei DPropR-Subskriptionen muss die Replikationskonfiguration zwischen der Quellen- und der Spiegeldatenbank VOR Ausführung des XML-Tools durchgeführt werden, um eine DPropR-Subskription (Befehl AddDproprSubscription) hinzuzufügen, die das Synchronisieren der Spiegeldatenbank auf mobile Geräte ermöglicht. Hierzu muss der Benutzer in der Steuerzentrale Quellentabellen als Replikationsquelle definieren, um diese replizieren zu können. Dann muss der Benutzer eine Replikationssubskription erstellen (die ein DPropR-Term ist). DB2e Sync Server erwartet, dass das Apply-Qualifikationsmerkmal für eine DPropR-Replikationssubskription dem Namen der Spiegeldatenbank entspricht. Nehmen wir z. B. "S_MPFLEGE" in der MPFLEGE-Beispielanwendung. Der Benutzer sollte den Namen dieser Spiegeldatenbank als Apply-Qualifikationsmerkmal eingeben. Nach erfolgreicher Erstellung der Replikationssubskription kann der Benutzer das XML-Tool ausführen, um die Replikationssubskription auf Sync Server einzuführen und die Synchronisationsinfrastruktur in der Spiegel- und Steuerungsdatenbank zu erstellen. Der Name der Replikations- subskription sollte dem Namen der DPropR-Tabellensubskription von Sync Server entsprechen, die der Benutzer im XML-Tool verwenden möchte, um Komplikationen zu vermeiden. MDAC (Verwaltungs-GUI von DB2e Sync Server) verwaltet die Erstellung der Replikationssubskription und die Erstellung der Sync Server- DPropR-Subskription, ohne Details dieses Prozesses offenzulegen. Auf diese Weise kann derselbe Subskriptionsname für die Replikationssubskription und die Sync Server-DPropR- Subskription verwendet werden. --> <!-- Der Befehl AddJdbcMaster fügt die Verbindungsinformationen für eine JDBC-Master- Datenbank (Quellendatenbank) ein. Auf diese Beschreibung wird von Elementen verwiesen, die zu JDBC-Subskriptionen gehören, um die Quellendatenbank der Subskription festzulegen. Dieser Befehl verfügt über die folgenden untergeordneten Elemente: "Datenbank" (maximale Länge = 255) ist die JDBC-URL für die Quellendatenbank. "Treiber" (maximale Länge = 255) ist der JDBC-Treiberklassenname. "Benutzer-ID" (maximale Länge = 128) ist die ID zum Herstellen einer Verbindung zu dieser Datenbank mit JDBC. "Kennwort" (maximale Länge = 128) ist das Kennwort zum Herstellen einer Verbindung zu dieser Datenbank mit JDBC.--> <!ELEMENT AddJdbcMaster (Datenbank, Treiber, Benutzer-ID, Kennwort)> <!-- Der Befehl AddReplMaster fügt die Beschreibung einer DPropR- Masterdatenbank (Quellendatenbank) ein. Auf diese Beschreibung wird von Elementen verwiesen, die zu DPropR-Subskriptionen gehören, um die Quellendatenbank der Subskription festzulegen. Dieser Befehl verfügt über die folgenden untergeordneten Elemente: "System" (maximale Länge = 128) ist der DB2-Systemname für die Quellendatenbank (wie in der DB2 UDB-Steuerzentrale angezeigt). "Exemplar" (maximale Länge = 8) ist der DB2-Exemplarname für die Quellendatenbank (wie in der DB2 UDB-Steuerzentrale angezeigt). "Datenbank" (maximale Länge = 18) ist der DB2-Datenbankname für die Quellendatenbank (wie in der DB2 UDB-Steuerzentrale angezeigt). "Benutzer-ID" (maximale Länge = 128) ist die ID zum Herstellen einer Verbindung zu dieser Datenbank mit JDBC. "Kennwort" (maximale Länge = 128) ist das Kennwort zum Herstellen einer Verbindung zu dieser Datenbank mit JDBC. "Aliasname der Datenbank" (maximale Länge = 18) ist der Aliasname für diese Datenbank.--> <!ELEMENT AddReplMaster (System, Exemplar, Datenbank, Benutzer-ID, Kennwort, Aliasname der Datenbank?)> <!ELEMENT System (#PCDATA)> <!ELEMENT Exemplar (#PCDATA)> <!ELEMENT Datenbank (#PCDATA)> <!ELEMENT Benutzer-ID (#PCDATA)> <!ELEMENT Kennwort (#PCDATA|NULL)*> <!--Datenbankkennwörter können nicht null sein, Gruppenkennwörter können jedoch null sein.--> <!ELEMENT Aliasname der Datenbank (#PCDATA|NULL)*> <!-- Der Befehl AddJdbcMirror fügt die Verbindungsinformationen für eine JDBC-Spiegeldatenbank ein. Auf diese Beschreibung wird von Elementen verwiesen, die zu JDBC-Subskriptionen gehören, um die Spiegeldatenbank der Subskription festzulegen. Dieser Befehl verfügt über die folgenden untergeordneten Elemente: "Datenbank" (maximale Länge = 255) ist der DB2-Datenbankname für die Spiegeldatenbank (wie in der DB2 UDB-Steuerzentrale angezeigt). "Treiber" (maximale Länge = 255) ist der JDBC-Treiberklassenname. "Benutzer-ID" (maximale Länge = 128) ist die ID zum Herstellen einer Verbindung zu dieser Datenbank mit JDBC. "Kennwort" (maximale Länge = 128) ist das Kennwort zum Herstellen einer Verbindung zu dieser Datenbank mit JDBC. Der Befehl AddCustomLogic ermöglicht die Zuordnung mindestens einer benutzer- definierten CustomLogic-Implementierungskasse zu dieser Spiegeldatenbank, um das Replikationsverhalten anzupassen. Beachten Sie, dass Fehler in der angepassten Logikimplementierung dazu führen, dass die Replikation fehlschlägt. Wenn Sie dennoch auf eine Replikation bestehen, können versuchte Änderungen an replizierten Subskriptionen blockiert werden. --> <!ELEMENT AddJdbcMirror (Datenbank, Treiber, Benutzer-ID, Kennwort, Synchronisationsfenster?, AddCustomLogic* )> <!ELEMENT Treiber (#PCDATA)> <!ELEMENT Synchronisationsfenster (#PCDATA|NULL)*> <!-- Der Befehl AddReplMirror fügt die Beschreibung einer DPropR- Spiegeldatenbank ein. Auf diese Beschreibung wird von Elementen verwiesen, die zu DPropR-Subskriptionen gehören, um die Spiegeldatenbank der Subskription festzulegen. Dieser Befehl verfügt über die folgenden untergeordneten Elemente: "Datenbank" (maximale Länge = 18) ist der DB2-Datenbankname für die Spiegeldatenbank (wie in der DB2 UDB-Steuerzentrale angezeigt). "Benutzer-ID" (maximale Länge = 128) ist die ID zum Herstellen einer Verbindung zu dieser Datenbank mit JDBC. "Kennwort" (maximale Länge = 128) ist das Kennwort zum Herstellen einer Verbindung zu dieser Datenbank mit JDBC. "Synchronisationsfenster" (ganze Zahl) ist die Zeit in Sekunden, die für die Wiederholung der Replikation zwischen Master- und Spiegeldatenbank benötigt wird. Der Befehl AddCustomLogic ermöglicht die Zuordnung mindestens einer benutzer- definierten CustomLogic-Implementierungsklasse zu dieser Spiegeldatenbank, um das Replikationsverhalten anzupassen. --> <!ELEMENT AddReplMirror (Datenbank, Benutzer-ID, Kennwort, Synchronisationsfenster, AddCustomLogic*)> <!--Benutzer und Gruppen in DB2 Everyplace Sync Server: Sync Server verwendet das Konzept des "Benutzers" (siehe Befehl AddUser), um einem Gerät Subskriptionen zuzuordnen, die für das Gerät synchronisiert werden müssen. Ein Benutzer gehört zu einer Gruppe (siehe Befehl AddGroup). Eine Gruppe enthält Subskriptionsgruppen (siehe Befehl AddSubscriptionSet). Eine Subskriptionsgruppe enthält Subskriptionen (siehe AddXYZSubscription-Befehle). Subskriptionen definieren die Untergruppe des Datenbankschemas, das mit der mobilen Datenbank synchronisiert wird. Diese XML-DTD beschreibt, wie diese konzeptuellen Entitäten erstellt und einander zugeordnet werden. Bei LDAP-fähigen Installationen ignoriert das XML-Tool Befehle wie das Hinzufügen oder Entfernen von Benutzern/Gruppen. Die Verwaltung von Benutzern/Gruppen wird nicht von Sync Server ausgeführt. --> <!--Der Befehl AddGroup fügt die Beschreibung einer Gruppe ein. "Name" (maximale Länge = 18) ist ein eindeutiger Gruppenname. "Beschreibung" (maximale Länge = 128) ist eine Textbeschreibung. "Aktiviert" ist "Y" oder "N". Bei "Y" können die Mitglieder dieser Gruppe synchronisieren, bei "N" können sie dies nicht. --> <!ELEMENT AddGroup (Name, Beschreibung?, Aktiviert, (IncludeSubscriptionSet | AddDataFilter)*) > <!ELEMENT Name (#PCDATA)> <!ELEMENT Beschreibung (#PCDATA|NULL)*> <!ELEMENT Aktiviert (#PCDATA)> <!--Der Befehl IncludeSubscriptionSet fügt eine Subskriptionsgruppe (eine logische Gruppierung von Subskriptionen, die zusammen synchronisiert werden) in die Gruppe ein, die diesen Befehl enthält. Eine Gruppe muss nicht-leere Subskriptionsgruppen enthalten, um zu beschreiben, welche Art von Datengruppenelementen (Benutzern) synchronisieren wird, damit eine Datensynchronisation möglich ist. "Name" (maximale Länge = 18) ist der Name der zugehörigen Subskriptionsgruppe. "Reihenfolge" ist eine ganze Zahl, die anzeigt, welche Subskriptionsgruppe an erster Stelle steht. Wenn nicht anders angegeben, wird die Reihenfolge verwendet, in der die Subskriptionsgruppen im Befehl AddGroup erscheinen. Wenn die durch "Name" angegebene Subskriptionsgruppe nicht vorhanden ist, schlägt der Befehl AddGroup fehl, der diese Subskriptionsgruppe aufnehmen will. Die Gruppe kann nicht erstellt werden. --> <!ELEMENT IncludeSubscriptionSet (Name, Reihenfolge?)> <!--Der Befehl AddDataFilter deklariert einen Datenfilter für die Gruppe, die diesen Befehl enthält. Datenfilter ermöglichen das Versenden eines Abschnitts einer Quellentabelle an die mobile Datenbank einer Gruppe oder eines Benutzers. Sie ermöglichen auch eine leicht unterschiedliche Erstellung einer (mobilen) Zieldatenbank auf der Basis der Datenfilter des Benutzers. (Siehe auch Befehle ColumnDataFilter und Constrnt). Ein Datenfilter besteht aus einem Namen und einem Wert. "Name" (maximale Länge = 18) ist ein beliebiger Name, auf den in der eigentlichen WHERE-Klausel zum Filtern verwiesen wird (solche WHERE-Klauseln werden pro Tabelle in den Subskriptionseinstellungen angegeben). "Wert" (maximale Länge = 36) gibt den Standardwert an (jeder Benutzer kann ihn mit seinen Einstellungen überschreiben). Die zu synchronisierenden Daten können durch eine Bedingung wie die Folgende gefiltert werden: ACOLUMN IN (SELECT ACOLUMN FROM TABLE :name=wert)' in der WHERE-Klausel einer Subskriptionstabelle (von der Spiegel- zur Zieldatenbank). Wenn der Befehl AddUser den Befehl OverrideDataFilter enthalten soll, MUSS die Benutzergruppe dieselben Datenfilter erstellt haben. Das heißt, Datenfilter werden für Gruppen erstellt und manchmal von Benutzern überschrieben. Der Grund für das Erstellen von Datenfiltern auf Gruppenebene besteht darin, dass Gruppen Subskriptionen enthalten, die diese Datenfilter in ihren WHERE-Klauseln zum Filtern von Zeilen verwenden. Wenn einige Benutzer einen bestimmten Datenfilter nicht hätten, könnten sie eine Subskription, die diesen Datenfilter verwendet, nicht synchronisieren. Daher sind die Abhängigkeiten so gestaltet, dass eine Gruppe mit einer Subskription, in der das Filtern von Zeilen angegeben wurde (vom Spiegel zum mobilen Gerät), die zugehörigen Datenfilter definiert haben muss und die Benutzer diese Datenfilter übernehmen. Wenn weitere Datenfilter definiert werden, die von der Subskription nicht verwendet werden, bleiben diese wirkungslos und werden während der Synchronisation ignoriert. Datenfilter können in den WHERE-Klauselfiltern (Master zu Spiegel) nicht verwendet werden, um replizierte Zeilen zu filtern. Ursache dafür ist, dass die Replikation nicht im Kontext einer Gruppe aktiv ist. Die Replikation ist unabhängig von allen Gruppen, daher ist ein Gruppendatenfilter nicht relevant und wird, falls irrtümlich verwendet, wahrscheinlich SQL-Fehler während der Replikation verursachen. (Siehe auch Befehle ColumnDataFilter und Constrnt). --> <!ELEMENT AddDataFilter (Name, Wert?) > <!ELEMENT Wert (#PCDATA|NULL)*> <!ELEMENT OverrideDataFilter (Name, Wert?) > <!--Der Befehl AddUser erstellt einen Benutzer. Jede mobile Datenbank muss einen Benutzer für die Synchronisation mit Sync Server haben. "Name" (maximale Länge = 18) ist der eindeutige Name eines Benutzers. "Benutzergruppe" (maximale Länge = 18) ist der Name einer vorhandenen Gruppe. Wenn eine solche Gruppe nicht vorhanden ist, schlägt AddUser fehl, und der Benutzer kann nicht hinzugefügt werden. "Beschreibung" (maximale Länge = 128) ist eine Textbeschreibung des Benutzers. "Kennwort" (maximale Länge = 18) ist das Kennwort, das der Benutzer auf dem mobilen Gerät für die Synchronisation mit Sync Server angeben muss. Das Element OverrideDataFilter ermöglicht es diesem Benutzer, einen angepassten Wert für einen der Benutzergruppe hinzugefügten Datenfilter bereitzustellen. Siehe hierzu auch die Beschreibung des Befehls AddDataFilter. --> <!ELEMENT AddUser (Name, Benutzergruppe?, Beschreibung?, Kennwort?, LDAP-Merkmale?, (OverrideDataFilter | AddDevice)*) > <!ELEMENT Benutzergruppe (#PCDATA|NULL)*> <!--Der Befehl AddDevice fügt eine Gerätebeschreibung für den Benutzer hinzu. Normalerweise werden derartige Beschreibungen von Sync Server während der Synchronisation auf der Basis des Geräts erstellt, das tatsächlich die Synchronisation ausführt. Dieser Befehl wird für bestimmte Anwendungsbeispiele und Sicherungen bereitgestellt, die diese Funktionalität möglicherweise erfordern. "ID" (maximale Länge = 32) wird vom Server generiert. "Typ" ist eine Zeichenfolge für einen bestimmten Gerätetyp. Die für diesen Zweck verwendeten Zeichenfolgekonstanten sind unten aufgelistet. Der in diesem Befehl verwendete Gerätetyp gehört auch dazu. Diese Gerätetypen sind ganzen Zahlen in der Steuerungsdatenbank zugeordnet. Falls notwendig, können Benutzer diese Zahlen auch in XML verwenden (für den Fall, dass in letzter Minute ein neuer Gerätetyp hinzukommt und das XML- Tool diesen nicht kennt). Die folgenden Zeichenfolgen für Gerätetypen sind möglich: PALM oder PALM_M68K WINCE oder WINCE_ARM WIN32 oder WIN32_X86 WIN32UNICODE oder WIN32UNICODE_X86 NEUTRINO oder NEUTRINO_X86 MIDP LINUX oder LINUX_X86 EMBEDDEDLINUX oder EMBEDDEDLINUX_X86 EPOC oder EPOC_ARM EPOCUNICODE oder EPOCUNICODE_ARM Es sind außerdem einige andere mögliche Varianten auf der Basis der Geräteprozessoren definiert worden. Diese werden jedoch noch nicht von Sync Server verwendet. Wenn also z. B. XML als Gerätetyp WIN32_MIPS angibt, wird dieser Wert standardmäßig in WIN32 umgesetzt, da noch nicht zwischen den Prozessoren unterschieden wird. Mögliche Zeichenfolgekonstanten sind: WINCE_SH3 WINCE_SH4 WINCE_MIPS WINCE_X86 EPOC_X86 EPOCUNICODE_X86 Das Feld "Aktiviert" besteht aus einem Zeichen, entweder "Y" oder "N". --> <!ELEMENT AddDevice (ID, Typ, Aktiviert)> <!ELEMENT ID (#PCDATA) > <!-- Bei LDAP-fähigen Installationen werden Benutzer- und Gruppen- informationen für Sync Server vom LDAP-Server abgerufen und in der Steuerungsdatenbank gespeichert, um sie Subskriptionsgruppen zuzuordnen. Bei der Erstellung eines Benutzers mit dem XML-Tool müssen die LDAP-Merkmale des Benutzers angegeben werden, damit der Benutzer auf dem LDAP-Server erstellt werden kann. Vor- und Nachname sind obligatorische Angaben. Für eine Synchronisation mit Sync Server muss der LDAP-Benutzer außerdem zu einer Synchronisationsgruppe gehören. Für die Zuordnung eines Benutzers zu einer Synchronisationsgruppe kann mindestens ein AddToSyncGroup-Befehl verwendet werden. Synchronisationsgruppen werden in LDAP-spezifischen Merkmalen der Sync Server-Installation definiert. Der Name einer Synchronisationsgruppe sollte mit "DB2e" beginnen. Anmerkung: Während der Migration einer Nicht-LDAP-Installation auf eine LDAP-fähige Installation verwendet Sync Server für den Vor- und Nachnamen standardmäßig "DSY", um Benutzer auf dem LDAP-Server zu erstellen. --> <!ELEMENT LDAP-Merkmale (Vorname, Nachname, AddToSyncGroup*, RemoveFromSyncGroup*, E-Mail?, Bevorzugte Sprache?, Zweck?)> <!ELEMENT Vorname (#PCDATA)> <!ELEMENT Nachname (#PCDATA)> <!ELEMENT AddToSyncGroup (#PCDATA)> <!ELEMENT RemoveFromSyncGroup (#PCDATA)> <!ELEMENT E-Mail (#PCDATA)> <!ELEMENT Bevorzugte Sprache (#PCDATA)> <!ELEMENT Zweck (#PCDATA)> <!--Eine Subskriptionsgruppe ist eine logische Zusammenfassung von Subskriptionen, die zusammen synchronisiert werden. Eine Gruppe von Benutzern synchronisiert mit einer definierten Subskriptionsgruppe, nicht mit einzelnen Subskriptionen. "Name" (maximale Länge = 18) ist der Name der Subskriptionsgruppe. "Beschreibung" (maximale Länge = 128) ist eine Textbeschreibung. "Kennung" (maximale Länge = 128) - wird nicht verwendet. "IncludeSubscription" verweist auf eine vorhandene Subskription, die in diese Subskriptionsgruppe aufgenommen werden sollte. Wenn die Subskription nicht vorhanden ist, schlägt die Erstellung dieser Subskription fehl. --> <!ELEMENT AddSubscriptionSet (Name, Beschreibung?, Kennung?, (IncludeSubscription*))> <!ELEMENT Signatur (#PCDATA|NULL)*> <!--Der Befehl IncludeSubscription wird von den AddSubscriptionSet-Befehlen verwendet. "Name" (maximale Länge = 18) ist der Name der vorhandenen Subskription, die eingeschlossen wird. "Reihenfolge" ist eine ganze Zahl, die die Reihenfolge der Subskription im Verhältnis zu anderen Subskriptionen angibt, die ebenfalls in der übergeordneten Subskriptionsgruppe enthalten sind. Die in einer Subskriptionsgruppe enthaltenen Subskriptionen werden in dieser Reihenfolge synchronisiert. Falls nicht anders angegeben, wird die Reihenfolge der Auflistung in XML verwendet. --> <!ELEMENT IncludeSubscription (Name, Reihenfolge?)> <!--Der Befehl AddJdbcSubscription erstellt eine JDBC-Subskription, um relationale Daten einer Spiegeldatenbank mit den mobilen Datenbanken zu synchronisieren. Die Replikation von Master zu Spiegel wird ebenfalls durch den Sync Server-Replikationsmechanismus und nicht durch DPropR ausgeführt. "Name" (maximale Länge = 18) ist der eindeutige Name der Subskription. "Beschreibung" (maximale Länge = 128) ist eine Textbeschreibung. "Unteradapter" (maximale Länge = 18) ist der Name eines vorhandenen Adapters, den diese Subskription verwendet. "Verschlüsselungsstufe" ist eine ganze Zahl, die die zu verwendende Verschlüsselungsstufe angibt. 0 bedeutet keine Verschlüsselung, 1 bedeutet 56-Bit-Verschlüsselung, und 2 bedeutet 128-Bit- Verschlüsselung. "Blockieren" ist entweder auf "Y" oder "N" gesetzt. Bei "Y" kann die Subskription nicht synchronisiert werden. Das Zielgerät wird darüber informiert, dass keine Subskription verfügbar ist. "Masterdatenbank" (maximale Länge = 255) ist die JDBC-URL-Adresse für die Masterdatenbank. Die Kombination aus "Masterdatenbank" und "Mastertreiber" verweist auf eine bereits vorhandene Masterdatenbankdefinition, die von allen sie verwendenden Subskriptionen gemeinsam benutzt wird. "Mastertreiber" (maximale Länge = 255) ist der JDBC-Treiber, mit dem eine Verbindung zur Masterdatenbank hergestellt wird. Die Datenbankdefinition, auf die durch den zusammengesetzten Schlüssel "Masterdatenbank" und "Mastertreiber" verwiesen wird, muss bereits definiert worden sein. (Siehe Befehl AddJdbcMaster für weitere Informationen). "Spiegeldatenbank" und "Spiegeltreiber" verweisen auf eine bereits vorhandene Spiegeldatenbankdefinition, so wie "Masterdatenbank" dies für eine Masterdatenbank übernimmt. Der Befehl AddTable fügt dieser Subskription Datenbanktabellen hinzu, die synchronisiert oder repliziert werden sollen. Anmerkung: Hochladesubskriptionen (die über keine Spiegel verfügen und nur aus mobilen Datenbanken in Quellendatenbanken einfügen) werden durch den Befehl AddUploadSubscription ausgeführt. Achtung: Das Hinzufügen einer Subskription blockiert betroffene Komponenten des Systems (eine betroffene Spiegeldatenbank ist eine Hauptkomponente) während dieser Operation, wodurch sie nicht verwendbar ist. Vermeiden Sie, dass derartige Operationen häufig vorkommen, während die Server aktiv sind, andernfalls wird die Serverleistung dadurch beeinträchtigt. Das Attribut "Replizieren" wird entweder auf "TRUE" oder "FALSE" gesetzt. Wenn keine Angabe vorhanden sind, wird es standardmäßig auf "TRUE" gesetzt. Nach dem Erstellen einer Subskription wird eine Replikation ausgeführt, um die neuen Spiegeltabellen zum Synchronisieren mit Daten zu füllen. Wenn die Replikation übersprungen wird (Replizieren="FALSE"), wird die Subskription blockiert (für eine Synchronisation nicht verfügbar), bis die Replikation entweder manuell oder im Rahmen einer terminierten Replikation für den betreffenden Spiegel ausgeführt wird. Beim Hinzufügen, Löschen oder Editieren mehrerer Subskriptionen kann es aus Leistungsgründen angebracht sein, Replizieren="FALSE" zu setzen, um Replikationsversuche zu Beginn und am Ende zu vermeiden, und die Replikation vor und nach Änderungen manuell durchzuführen. In manchen Fällen können auch Fehler in der Subskriptionskonfiguration weitere Replikationen verhindern. Dann muss die Replikation übersprungen werden, um in der Subskription Korrekturen vornehmen zu können. Zum manuellen Replizieren kann der Benutzer das Befehlszeilentool "dsyreplicate" verwenden. --> <!ELEMENT AddJdbcSubscription (Name, Beschreibung?, Unteradapter, Verschlüsselungsstufe?, Blockieren?, Masterdatenbank, Mastertreiber, Spiegeldatenbank?, Spiegeltreiber?, (AddTable*))> <!ATTLIST AddJdbcSubscription Replizieren (TRUE | FALSE) "TRUE"> <!ELEMENT Unteradapter (#PCDATA)> <!ELEMENT Verschlüsselungsstufe (#PCDATA)> <!ELEMENT Blockieren (#PCDATA)> <!ELEMENT Masterdatenbank (#PCDATA)> <!ELEMENT Mastertreiber (#PCDATA)> <!ELEMENT Spiegeldatenbank (#PCDATA|NULL)*> <!ELEMENT Spiegeltreiber (#PCDATA)> <!--AddUploadSubscription erstellt eine Subskription, die Einfügungen aus einer mobilen Datenbank in die Quellendatenbank ermöglicht. Hochladesubskriptionen haben keine zugehörigen Spiegeldatenbanken. Eine Beschreibung der untergeordneten Felder finden Sie in den Kommentaren zum Befehl AddJdbcSubscription. Der Befehl AddTable fügt dieser Subskription Datenbanktabellen hinzu, die synchronisiert werden müssen. --> <!ELEMENT AddUploadSubscription (Name, Beschreibung?, Unteradapter, Verschlüsselungsstufe?, Blockieren?, Masterdatenbank, Mastertreiber, (AddTable*))> <!--Der Befehl AddDproprSubscription erstellt eine Subskription, um relationale Daten einer Spiegeldatenbank mit den mobilen Datenbanken zu synchronisieren. Die Replikation von Master zu Spiegel wird ebenfalls durch den DB2 DPropR-Replikationsmechanismus ausgeführt. DB2 DPropR verwendet das Konzept einer Replikationssubskription. Dieses Konzept unterscheidet sich von den hier beschriebenen Sync Server-Subskriptionen. Die DPropR-Replikations- subskription muss mit Hilfe der DPropR-Tools konfiguriert werden, bevor die Sync Server-Subskription erstellt werden kann. Verwenden Sie bei der Erstellung der Replikationssubskription mit den DB2-DPropR-Tools denselben Subskriptionsnamen wie die Sync Server-Subskription, die Sie verwenden möchten. Als Apply- Qualifikationsmerkmal verwenden Sie den Namen der Spiegeldatenbank. Der Unterschied zwischen JDBC-Subskriptionen und DPropR-Subskriptionen ist der eingesetzte Replikationstyp. Da die DPropR-Replikation zwischen zwei DB2- Datenbanken ausgeführt wird, muss die Masterdatenbank (Quellendatenbank) eine DB2-Datenbank sein, während dies bei JDBC-Subskriptionen jede Datenbank sein kann, die mit JDBC kompatibel ist. Die Felder "Name", "Beschreibung", "Unteradapter", "Verschlüsselungsstufe" und "Blockieren" sind dieselben wie bei anderen Subskriptionen. Die für DPropR-Subskriptionen spezifischen Felder lauten: "Mastersystem" (maximale Länge = 128) ist das DB2-Mastersystem. "Masterexemplar" (maximale Länge = 8) ist das DB2-Masterdatenbankexemplar. "Masterdatenbank" (maximale Länge = 18) ist der Name der Masterdatenbank. Die Kombination aus "Mastersystem", "Masterexemplar" und "Masterdatenbank" bildet einen zusammengesetzten Schlüssel, der auf eine vorhandene Masterdatenbank- beschreibung verweist, die typischerweise durch den Befehl AddReplMaster erzeugt wird. Wenn eine solche Datenbankdefinition nicht vorhanden ist, schlägt die Erstellung dieser Subskription fehl. "Spiegeldatenbank" (maximale Länge = 18) ist der Spiegeldatenbankname, der auf eine Spiegeldatenbankdefinition verweist, die normalerweise durch den Befehl AddReplMirror erstellt wird. Wenn eine solche Beschreibung nicht vorhanden ist, schlägt die Erstellung dieser Subskription fehl. Sync Server geht davon aus, dass das Apply-Qualifikationsmerkmal einer Replikationssubskription diesem Spiegeldatenbanknamen entspricht. Achtung: Das Hinzufügen einer Subskription blockiert betroffene Komponenten des Systems (eine betroffene Spiegeldatenbank ist eine Hauptkomponente) während dieser Operation, wodurch sie für den Server nicht verwendbar ist. Vermeiden Sie, dass derartige Operationen häufig vorkommen, während die Server aktiv sind. Andernfalls wird die Serverleistung dadurch beeinträchtigt. --> <!ELEMENT AddDproprSubscription (Name, Beschreibung?, Unteradapter, Verschlüsselungsstufe? Blockieren?, Mastersystem, Masterexemplar, Masterdatenbank, Spiegeldatenbank, APPLY-Qualifikationsmerkmal, (AddTable*))> <!ATTLIST AddDproprSubscription Replizieren (TRUE | FALSE) "TRUE"> <!ELEMENT Mastersystem (#PCDATA)> <!ELEMENT Masterexemplar (#PCDATA)> <!ELEMENT Apply-Qualifikationsmerkmal (#PCDATA)> <!--Der Befehl AddFileSubscription erstellt eine Subskription, um Dateien aus dem Quellensystem mit einem mobilen Gerät zu synchronisieren. Die spezifischen untergeordneten Felder lauten: "Einheitentypen" ist eine Liste von durch ein Semikolon (";") getrennten Einheitentypen, an die diese Datei gesendet werden kann. Dies ist notwendig, da bestimmte Dateiformate für die verschiedenen Einheiten unterschiedlich sein müssen. Mögliche Einheitentypen sind in den Kommentaren zu dem Befehl AddDevice aufgelistet. "Quellendateiname" (maximale Länge = 255) ist der Name der Datei im Quellensystem. "Zieldateiname" (maximale Länge = 255) ist der Name der Datei im Zielsystem. --> <!ELEMENT AddFileSubscription (Name, Beschreibung?, Unteradapter, Verschlüsselungsstufe?, Blockieren?, Einheitentypen?, Quellendateiname, Zieldateiname?)> <!ELEMENT Quellendateiname (#PCDATA)> <!ELEMENT Zieldateiname (#PCDATA|NULL)*> <!ELEMENT Einheitentypen (#PCDATA|NULL)*> <!--AddCustomSubscription erstellt eine angepasste Subskription. Das einzige spezifische Feld lautet "Sonstige" (maximale Länge = 4096), welches anwendungsspezifische Daten enthält. --> <!ELEMENT AddCustomSubscription (Name, Beschreibung?, Unteradapter?, Verschlüsselungsstufe? Blockieren?, Sonstige?)> <!ELEMENT Sonstige (#PCDATA|CDATA|NULL)*> <!ELEMENT Typ (#PCDATA)> <!--Der Befehl AddTable ermöglicht es, Tabellen in JDBC-, DPropR- und Hochladesubskriptionen einzufügen. "Zielschema" (maximale Länge = 128) ist das Schema der Tabelle auf dem Zielgerät. "Zieltabelle" (maximale Länge = 128) ist der Name der Tabelle auf dem Zielgerät. Die Kombination aus Zielschema und Zieltabelle muss für eine bestehende Subskription eindeutig sein. Bei DPropR-Subskriptionen muss Zielschema.Zieltabelle in der Spiegeldatenbank vorhanden sein. Andernfalls schlägt der übergeordnete Subskriptionsbefehl fehl. "Quellenschema" (maximale Länge = 128) ist das Schema der Tabelle in der Quellendatenbank. "Quellentabelle" (maximale Länge = 128) ist der Name der Tabelle in der Quellendatenbank. Die durch Quellenschema.Quellentabelle angegebene Tabelle muss für JDBC- und Hochladesubskriptionen in der Quellendatenbank vorhanden sein, oder die Erstellung der übergeordneten Subskriptionsbefehle schlägt fehl. "Löschberechtigung" ist entweder "Y" oder "N", Standardwert ist "Y". "Einfügeberechtigung" ist entweder "Y" oder "N", Standardwert ist "Y". "Aktualisierungsberechtigung" ist entweder "Y" oder "N", Standardwert ist "Y". "Auswahlberechtigung" ist entweder "Y" oder "N", Standardwert ist "Y". Eine Änderung der Zugriffsrechte hat nicht zur Folge, dass die Tabelle gelöscht und auf der Spiegeldatenbank und den Zielgeräten erneut erstellt wird. "Spiegel-mobil-WHERE-Klausel" (maximale Länge = 1024) ist Teil einer Integritätsbedingung in einer DB2-SQL- Anweisung mit WHERE-Klausel, die auf dem Spiegel ausgeführt wird, um zu synchronisierende Zeilen zu filtern. Sie muss entweder wahr oder falsch ergeben. Sie kann Datenfilterparameter enthalten, die für Gruppen definiert sind (siehe Befehl AddDataFilter). Wenn Datenfilter definiert wurden, werden sie durch die benutzerspezifischen oder benutzergruppenspezifischen Werte ersetzt, die synchronisiert werden. Bei Änderung dieser WHERE-Klausel wird die Tabelle gelöscht und auf den Zielgeräten und in der Spiegeldatenbank erneut erstellt. Beispiel: Eine Anwendung hat zwei Benutzergruppen: eine Gruppe "Süddeutschland" und eine Gruppe "Norddeutschland". Die WHERE-Klausel für eine Tabelle könnte dann folgendermaßen lauten: BEREICH=:GRUPPE_BEREICH Dann können die Gruppendatenfilter so definiert werden, dass sie für die Gruppe "Norddeutschland" wie folgt lauten: :GRUPPE_BEREICH="NORDDEUTSCHLAND" Die WHERE-Klausel wird für die Gruppe "Süddeutschland" während der Bearbeitungszeit wie folgt festgelegt: BEREICH="NORDDEUTSCHLAND" Die Benutzer der Gruppe "Norddeutschland" können nur die Zeilen abrufen, die mit dieser Integritätsbedingung übereinstimmen. "Master-Spiegel-WHERE-Klausel" (maximale Länge = 1024) ist Teil einer Integritätsbedingung einer WHERE-Klausel, die zum Filtern von Zeilen verwendet wird, welche von der Masterdatenbank zur Spiegeldatenbank repliziert werden. Da die Replikation nicht im Kontext von Benutzern oder Gruppen stattfindet, können in "Master-Spiegel-WHERE-Klausel" keine Datenfilter verwendet werden. Bei Änderung dieses WHERE-Klausel-Merkmals für eine Tabelle wird die Tabelle gelöscht und in der Spiegeldatenbank und auf den Zielgeräten erneut erstellt. "JoinFilter" wird auf "Y", "N" oder die Standardeinstellung "G" (Global) gesetzt. Damit wird angegeben, ob das Filtern von Verknüpfungen auf diese Tabelle angewendet werden soll. "Y" bedeutet, die Einstellung ist aktiviert. Wenn das Problem eines außerhalb des Bereichs liegenden Zeilenfilters akzeptabel ist, sollte "N" (inaktiviert) ausgewählt werden, um die Leistung zu verbessern. Wenn für diesen Befehl keine Angaben erfolgen, wird der Standardwert "G" verwendet. Dies bedeutet, dass die Aktivierung der Funktion zum Filtern von Verknüpfungen von der globalen Einstellung des Merkmals RowFilter.OutOfScope.Delete abhängt, das sich in der Tabelle DSY.PROPERTIES der Sync Server-Steuerungsdatenbank befindet. Lautet der zugehörige Wert 1, ist das Merkmal aktiviert. Lautet der Wert 0, ist es inaktiviert. "Tabellenbereich" ist ein optionales Feld für den DB2-Tabellenbereich, das in der Spiegeldatenbank verwendet werden kann, in die die Quellendatenbank repliziert wird. Da die Standardgröße der Tabellenbereichsseiten in der Spiegeldatenbank manchmal nicht groß genug ist, um replizierte Daten aufzunehmen, ist es in diesem Fall notwendig, die zugehörige Spiegeltabelle in einem anderen Tabellenbereich zu erstellen. Bei Änderung des Tabellenbereichs einer Tabelle wird die Tabelle gelöscht und auf dem Zielgerät und in der Spiegeldatenbank erneut erstellt. "Reihenfolge" ist eine ganze Zahl, die die Reihenfolge dieser Tabelle innerhalb der Subskription angibt. Falls nicht anders angegeben, wird die Reihenfolge der Auflistung verwendet. Der Index der ersten Tabelle ist 1, der zweiten 2 usw. Bei Verwendung im Befehl AlterTable, um die Reihenfolge einer Tabelle zu ändern, müssen Sie den neuen Reihenfolgeindex für diese Tabelle angeben. Wenn Ihre Tabelle z. B. innerhalb der Tabellen für die Subskription den dritten Platz einnehmen soll, geben Sie 3 an. Wenn die angegebene Folgenummer größer ist als die Anzahl vorhandener Tabellen, wird Ihre Tabelle als letzte Tabelle in die Subskription eingefügt (unter der Voraussetzung, dass keine andere Tabelle mit einem noch höheren Index vorhanden ist). Wenn die Folgenummer 0 oder negativ ist, wird die Tabelle als erste Tabelle eingefügt. Für Tabellen können unterschiedliche Reihenfolgen angegeben werden. Sie können z. B. Tabelle A mit der Folgenummer 3, Tabelle B mit der Folgenummer 1 und Tabelle C mit der Folgenummer 2 angeben. Auf diese Weise kann die Reihenfolge von Tabellen in vorhandenen Scripts einfacher geändert werden, ohne dabei Blöcke von AddTable-bezogenem Text versetzen zu müssen. Andererseits wird das XML-Script bei Verwendung gemischter Reihenfolgen schwer lesbar. Deshalb wird davon abgeraten. Am besten verwenden Sie die Tabellen in der Reihenfolge, wie Sie bei der Erstellung einer Subskription angezeigt werden. Bei Änderung der Tabellenreihenfolge erhalten die Zielgeräte, die noch nicht über diese Änderung informiert wurden, eine vollständige Beschreibung der gesamten Tabellenanzahl. Die Neuanordnung wird dann wie gewünscht durchgeführt. Dabei werden keine Tabellen in der Spiegeldatenbank oder auf den Zielgeräten gelöscht oder erneut erstellt. "Verschlüsseln" ist entweder "Y" oder "N". Standardwert ist "N". Gibt an, ob die Tabellendaten auf dem Gerät verschlüsselt werden sollten oder nicht. Dies ist ein Unterschied zur Verschlüsselung auf Subskriptionsebene, die die Verschlüsselungsstufe angibt, die bei der Synchronisation während der Verbindung benutzt wird. Bei Änderung dieses Attributs wird die Tabelle gelöscht und auf dem Zielgerät und in der Spiegeldatenbank erneut erstellt. AddColumn nimmt Spalten in einer bestimmten Tabelle auf (siehe Kommentare für den Befehl AddColumn). Beim Hinzufügen/Entfernen/Ändern von Spalten wird die Tabelle gelöscht und auf dem Zielgerät und in der Spiegeldatenbank erneut erstellt. AddIndex nimmt Indizes in einer bestimmten Tabelle auf (siehe Kommentare für den Befehl AddIndex). Beim Ändern der Indexgruppe einer Tabelle wird die Tabelle NICHT gelöscht und auf dem Zielgerät und in der Spiegeldatenbank erneut erstellt. AddCustomLogic ordnet eine benutzerdefinierte Java-Klasse zu, um Sync Server für Synchronisation und/oder Replikation zusätzliche Logikfunktionalität für diese Tabelle zur Verfügung zu stellen. Eine Replikation ist in manchen Fällen Voraussetzung für das Editieren einer Subskription. Bei Änderung der CustomLogic-Begriffsbestimmungen für eine Tabelle wird die Tabelle NICHT gelöscht und auf dem Zielgerät und in der Spiegeldatenbank erneut erstellt. --> <!ELEMENT AddTable (Zielschema, Zieltabelle, Quellenschema, Quellentabelle, Löschberechtigung, Einfügeberechtigung, Aktualisierungsberechtigung, Auswahlberechtigung, Spiegel-mobil-WHERE-Klausel?, Master-Spiegel-WHERE-Klausel?, JoinFilter?, Tabellenbereich?, Reihenfolge?, Verschlüsseln?, (AddColumn | AddIndex | AddCustomLogic)*)> <!ELEMENT Zielschema (#PCDATA)> <!ELEMENT Zieltabelle (#PCDATA)> <!ELEMENT Quellenschema (#PCDATA)> <!ELEMENT Quellentabelle (#PCDATA)> <!ELEMENT Löschberechtigung (#PCDATA)> <!ELEMENT Einfügeberechtigung (#PCDATA)> <!ELEMENT Aktualisierungsberechtigung (#PCDATA)> <!ELEMENT Auswahlberechtigung (#PCDATA)> <!ELEMENT Spiegel-mobil-WHERE-Klausel (#PCDATA|NULL)*> <!ELEMENT Master-Spiegel-WHERE-Klausel (#PCDATA|NULL)*> <!ELEMENT Reihenfolge (#PCDATA|NULL)*> <!ELEMENT Verschlüsseln (#PCDATA)> <!ELEMENT Tabellenbereich (#PCDATA|NULL)*> <!ELEMENT JoinFilter (#PCDATA)> <!--Die AddColumn-Befehle werden verwendet, um Spalten in eine zu synchronisierende oder zu replizierende Tabelle aufzunehmen. "Quellenspalte" (maximale Länge = 512) ist der Spaltenname in der Quellentabelle. Bei JDBC- und Hochladesubskriptionen müssen Spalten mit diesem Namen in der Quellentabelle vorhanden sein. Andernfalls schlägt die Erstellung der übergeordneten Subskription fehl. Bei DPropR-Subskriptionen muss die Spalte in der Spiegeldatenbank vorhanden sein. D. h., bei Aktivierung des XML-Tools muss auf diese Quellen- und Spiegeldatenbanken Zugriff bestehen. "Zielspalte" ist der Name der Spalte auf dem mobilen Gerät. Dieser Name muss unter den Spalten der übergeordneten Tabelle eindeutig sein. "Subskribieren" ist entweder "Y" oder "N". Standardwert ist "N". Bei "Y" wird die Spalte synchronisiert. "Replizieren" ist entweder "Y" oder "N". Standardwert ist "N". Bei "Y" wird die Spalte zwischen Master- und Spiegeldatenbank repliziert. Eine Spalte kann nur dann synchronisiert werden, wenn sie auch repliziert wird. "Schlüssel" ist entweder "Y" oder "N". Standardwert ist "N". Gibt an, ob diese Spalte Teil einer eindeutigen Schlüsselintegritätsbedingung ist. "Constrnt" ist eine DB2 Everyplace-Integritätsbedingung, die auf der (mobilen) Zieldatenbank bei der Erstellung der Spalte unter Verwendung von SQL-DDL eingesetzt wird. Z. B. soll die folgende Integritätsbedingung für die zugehörige Spalte vorhanden sein: Constraint CK_ENABLED prüfen(ENABLED in('N','Y')) Hierzu muss der Benutzer in XML <Constrnt>in('N','Y')</Constrnt> angeben. Mit ColumnDataFilter wird in SQL-DDL ein Standardwert bereitgestellt, während eine Spalte in einer (mobilen) Zieldatenbank erstellt wird. Da eine solche Datenbank zu einem bestimmten "Gerätebenutzer" gehört, kann dieser Datenfilter auch solche Datenfilter enthalten, die für Gruppen erstellt und von Benutzern überschrieben wurden (AddDataFilter und OverrideDataFilter). Um z. B. eine Spalte so zu erstellen, dass ihr Standardwert vom Standort des Benutzers des spezifischen Geräts abhängt, könnte die SQL-DDL folgendermaßen lauten: STADT varchar(50) not null with default "ISTANBUL" Damit dies vielgestaltig für jeden Benutzer an verschiedenen Standorten einsetzbar ist, muss der Administrator beispielsweise folgende Angaben machen: <ColumnDataFilter>:CITY</ColumnDataFilter> als Datenfilter für diese Spalte. Der Datenfilter muss für alle Gruppen und Benutzer gültig (erstellt) sein, die die Subskription synchronisieren, zu der die Spalte gehört. --> <!ELEMENT AddColumn (Quellenspalte, Zielspalte, Subskribieren, Replizieren, Schlüssel, Constrnt?, ColumnDataFilter?) > <!ELEMENT Quellenspalte (#PCDATA)> <!ELEMENT Zielspalte (#PCDATA)> <!ELEMENT Subskribieren (#PCDATA)> <!ELEMENT Replizieren (#PCDATA)> <!ELEMENT Schlüssel (#PCDATA)> <!ELEMENT Constrnt (#PCDATA|NULL)*> <!ELEMENT ColumnDataFilter (#PCDATA|NULL)*> <!--Der Befehl AddIndex erstellt Indexbeschreibungen für Zieltabellen. Indexnamen müssen innerhalb des Gesamtsystems eindeutig sein, unabhängig von Subskription oder Spiegel. Wenn Sie das Attribut MirrorOnly auf "TRUE" setzen, wird der Index nur in der Spiegeldatenbank erstellt. Er wird nicht auf dem Zielgerät erstellt. Das Attribut MirrorOnly ist standardmäßig auf "FALSE" gesetzt, sofern keine anderen Angaben gemacht werden. Der Befehl ColNames listet die Indexspalten auf. Die Spaltennamen sind die Zielnamen, die im Befehl AddTable verwendet werden. Die Namen enden mit einem Semikolon (;). Ein Pluszeichen (+) vor einem Spaltennamen gibt einen aufsteigenden Index, ein Minuszeichen (-) einen absteigenden Index an. Der Befehl AddIndex lautet folgendermaßen: <AddIndex> <Name>MYINDEX</Name> <ColNames>+MYCOLNAME1;+MYCOLNAME2;</ColNames> </AddIndex> --> <!ELEMENT AddIndex (Name, Spaltennamen)> <!ATTLIST AddIndex MirrorOnly (TRUE | FALSE) "FALSE"> <!ELEMENT Spaltennamen (#PCDATA)> <!-- Mit dem Befehl AddCustomLogic wird eine benutzerdefinierte Klasse einer Subskriptionstabelle oder einer Spiegeldatenbank zugeordnet, um dem Synchronisations- und/oder Replikationsprozess angepasste Logikfunktionalität hinzuzufügen. "PolicyType" ist eine der folgenden Konstante (ohne die Anführungszeichen): "BeforeTableSyncInPolicy" "AfterTableSyncInPolicy" "BeforeTableReplicatePolicy" "AfterTableReplicatePolicy" "BeforeDbReplicatePolicy" "AfterDbReplicatePolicy" "TableReplicatePolicy" "TableSyncInPolicy" "Klassenname" ist der vollständig qualifizierte Name der Java-Klasse, die die angepasste Logik implementiert. Diese Klasse muss im Klassenpfad von Sync Server und den Verwaltungstools enthalten sein. "Aktiviert" ist entweder "Y" oder "N". --> <!ELEMENT AddCustomLogic (Richtlinientyp, Klassenname, Aktiviert)> <!ELEMENT Richtlinientyp (#PCDATA)> <!ELEMENT AddAdapter (Name, Beschreibung?, Dateiattribute?, Befehlsattribute?, Kennung?, Klassenname?)> <!ELEMENT Dateiattribute (#PCDATA|NULL)*> <!ELEMENT Befehlsattribute (#PCDATA|NULL)*> <!ELEMENT Klassenname (#PCDATA|NULL)*> <!--Der Befehl AddServer erstellt eine neue Serverbeschreibung. Server müssen für das System definiert werden, damit es ordnungsgemäß arbeitet. Wenn ein Sync Server startet, aktualisiert er den Datensatz über sich selbst. Wenn ein Server abstürzt, ohne dass er den Datensatz als "offline" aktualisieren konnte, werden dadurch möglicherweise Probleme beim Editieren der Subskriptionen verursacht. Das Verwaltungstool lehnt die Anwendung von Änderungen möglicherweise ab, da es glaubt, es könne nicht mit einem aktiven Server kommunizieren und daher die Anwendung von Änderungen unbekanntes Verhalten hervorrufen würde. Vor dem Ausführen von Änderungen blockieren Verwaltungstools zugehörige Systemteile und übertragen die Aktualisierungen an die aktiven Server, die nicht als "offline" markiert sind. Wenn ein Server nicht als "offline" markiert ist und nicht antwortet, ist es nicht sicher, Änderungen anzuwenden. Solche Änderungen werden abgelehnt. --> <!ELEMENT AddServer (Name, Host-IP, Port, Beschreibung?, synchronisationsfähig?, replikationsfähig?, Blockieren?)> <!ELEMENT Host-IP (#PCDATA)> <!ELEMENT Port (#PCDATA)> <!ELEMENT synchronisationsfähig (#PCDATA)> <!ELEMENT replikationsfähig (#PCDATA)> <!ELEMENT Blockieren (#PCDATA)> <!ELEMENT Status (#PCDATA)> <!--ResetUser führt dazu, dass die Gerätedaten eines Benutzers gelöscht werden. "Name" ist der Benutzername. Das Zurücksetzen eines Benutzers führt dazu, dass das Zielgerät beim nächsten Synchronisationsversuch eine vollständige Aktualisierung ausführt. --> <!ELEMENT ResetUser (Name)> <!--ResetGroup führt dazu, dass die Gerätedaten aller Benutzer einer Gruppe gelöscht werden. "Name" ist der Gruppenname. --> <!ELEMENT ResetGroup (Name)> <!--ResetAll führt dazu, dass die Gerätedaten aller Benutzer im System gelöscht werden. --> <!ELEMENT ResetAll EMPTY> <!--Es folgen Remove-Befehle--> <!-- RemoveJdbcMaster entfernt Datensätze von einem JDBC-Masterdatenbanksystem, das von Subskriptionen gemeinsam verwendet werden kann. Es ist normalerweise nicht notwendig, diese Datensätze zu entfernen. In einigen Fällen könnte dies jedoch für die Testautomation nützlich sein. Wenn eine Subskription auf eine Master- oder Spiegeldatenbank verweist, kann sie nicht entfernt werden, und ein Fehler wird abgesetzt. --> <!ELEMENT RemoveJdbcMaster (Datenbank, Treiber)> <!-- RemoveReplMaster entfernt Datensätze von einem DPropR-Masterdatenbanksystem, das von Subskriptionen gemeinsam verwendet werden kann. Wenn eine Subskription auf eine Master- oder Spiegeldatenbank verweist, kann sie nicht entfernt werden, und ein Fehler wird abgesetzt. --> <!ELEMENT RemoveReplMaster (System, Exemplar, Datenbank)> <!-- RemoveJdbcMirror entfernt Datensätze von einem JDBC-Spiegeldatenbanksystem, das von Subskriptionen gemeinsam verwendet werden kann. Wenn eine Subskription auf eine Master- oder Spiegeldatenbank verweist, kann sie nicht entfernt werden, und ein Fehler wird abgesetzt. --> <!ELEMENT RemoveJdbcMirror (Datenbank, Treiber)> <!-- RemoveReplMirror entfernt Datensätze von einem DPropR-Spiegeldatenbanksystem, das von Subskriptionen gemeinsam verwendet werden kann. Wenn eine Subskription auf eine Master- oder Spiegeldatenbank verweist, kann sie nicht entfernt werden, und ein Fehler wird abgesetzt. --> <!ELEMENT RemoveReplMirror (Datenbank)> <!--RemoveGroup entfernt eine Gruppe und alle zugehörigen Daten aus dem System. Die betreffenden Benutzer in dieser Gruppe gehören danach keiner Gruppe mehr an.--> <!ELEMENT RemoveGroup (Name)> <!--RemoveUser entfernt einen Benutzer und alle zugehörigen Gerätedaten vom System. Einmal entfernt kann ein Benutzer nicht länger synchronisieren. --> <!ELEMENT RemoveUser (Name)> <!--RemoveServer entfernt einen Serverdatensatz aus dem System. Dies kann z. B. nützlich sein, wenn ein Servername geändert wird und der alte Name nicht mehr gültig ist. --> <!ELEMENT RemoveServer (Name)> <!--RemoveDevice ist als ResetDevice eigenständig implementiert und daher an dieser Stelle nicht enthalten.--> <!--RemoveSubscriptionSet entfernt eine Subskriptionsgruppe aus dem System und benachrichtigt Server, die online sind, über die Änderung. Wenn ein Server, der online sein sollte, nicht antwortet, können keine Änderungen ausgeführt werden. --> <!ELEMENT RemoveSubscriptionSet (Name)> <!--RemoveSubscription entfernt eine Subskription aus dem System und benachrichtigt Server, die online sind, über die Änderung. Wenn ein Server, der online sein sollte, nicht antwortet, können keine Änderungen ausgeführt werden. Das Entfernen einer Subskription blockiert betroffene Komponenten des Systems (eine betroffene Spiegeldatenbank ist eine Hauptkomponente) während dieser Operation, wodurch sie für den Server nicht verwendbar ist. Vermeiden Sie, dass derartige Operationen häufig vorkommen, während die Server aktiv sind, andernfalls wird die Serverleistung dadurch beeinträchtigt. --> <!ELEMENT RemoveSubscription (Name)> <!--Das Attribut "Replizieren" ist nur für replizierte Subskriptionen, z. B. JDBC, relevant.--> <!ATTLIST RemoveSubscription Replizieren (TRUE | FALSE) "TRUE"> <!--Wenn StopOnError auf "FALSE" gesetzt ist, wird die Subskription aus der Steuerungsdatenbank entfernt, auch wenn auf die Quellen- und/ oder Spiegeldatenbank kein Zugriff besteht oder ein Fehler aufgetreten ist, der die Replikation und/oder das Bereinigen von Quellen- oder Spiegeldatenbank verhindert. Die Quellen- und/oder Spiegeldatenbank muss danach möglicherweise bereinigt werden. Dies ist in Test- oder Entwicklungsumgebungen nützlich, in denen Quellen- und Spiegeldatenbanken keine Relevanz für den Entwickler haben oder bereits gelöscht wurden.--> <!ATTLIST RemoveSubscription StopOnError (TRUE | FALSE) "TRUE"> <!--RemoveAdapter entfernt einen Adapterdatensatz aus der Datenbank, ist aber nur für bestimmte Testcases nützlich und wird die meiste Zeit nicht benötigt. --> <!ELEMENT RemoveAdapter (Name)> <!--Blockiert eine Subskription und benachrichtigt dann die Server entsprechend, die online sind. Blockierte Subskriptionen können nicht synchronisiert werden.--> <!ELEMENT BlockSubscription (Name)> <!ELEMENT UnblockSubscription (Name)> <!-- Es folgen Alter-Befehle --> <!-- Die Befehlsgruppe AlterXYZ wird zum Suchen von Informationen und Ändern bestimmter Teile daraus verwendet. Die <AlterXYZ>-Befehle enthalten die eindeutige Kennung für einen zu ändernden Datensatz sowie die Liste der Merkmale, die für diesen Datensatz geändert werden sollen. Die Struktur eines AlterUser-Befehls könnte z. B. wie folgt aussehen: <AlterUser> <Name>benutzername</Name> //Gibt an, welcher Benutzer geändert wird. <User> //Listet neue Werte auf, die eingegeben werden sollen. <User> <AlterUser> --> <!--Der Befehl AlterJdbcMaster ermöglicht das Ändern von Verbindungs- informationen für eine JDBC-Masterdatenbank. In den meisten Fällen muss nur das Kennwort geändert werden. Die Benutzer-ID sollte nicht geändert werden, wenn eine vorhandene JDBC-Subskription diesen Master verwendet, da diese Benutzer-ID manchmal als Schemaname verwendet wird. --> <!ELEMENT AlterJdbcMaster (Datenbank, Treiber, JDBC-Masterdatenbank)> <!ELEMENT JdbcMaster (Datenbank?, Treiber?, Benutzer-ID?, Kennwort?)> <!--AlterJdbcMirror wird zum Ändern der Verbindungsmerkmale einer JDBC- Spiegeldatenbank verwendet. Es besteht die Möglichkeit, der Spiegeldatenbank mindestens eine angepasste Logikimplementierungsklasse hinzuzufügen oder diese zu entfernen. Zum Ändern vorhandener Logikbeschreibungen entfernen Sie die alte Beschreibung und fügen eine neue Beschreibung hinzu. --> <!ELEMENT AlterJdbcMirror (Datenbank, Treiber, JDBC-Spiegeldatenbank)> <!ELEMENT JdbcMirror (Datenbank?, Treiber?, Benutzer-ID?, Kennwort?, Synchronisationsfenster?, (AddCustomLogic | RemoveCustomLogic)*)> <!--AlterReplMaster ermöglicht das Editieren vorhandener Daten der DPropR- Masterdatenbank.--> <!ELEMENT AlterReplMaster (System, Exemplar, Datenbank, Replikationsmaster)> <!ELEMENT Replikationsmaster (System?, Exemplar?, Datenbank?, Benutzer-ID?, Kennwort?, Aliasname der Datenbank?)> <!--AlterReplMirror ermöglicht das Editieren vorhandener Daten der DPropR- Spiegeldatenbank. Es besteht die Möglichkeit, der Spiegeldatenbank mindestens eine angepasste Logikimplementierungsklasse hinzuzufügen oder diese zu entfernen. Zum Ändern vorhandener Logikbeschreibungen entfernen Sie die alte Beschreibung und fügen eine neue Beschreibung hinzu. --> <!ELEMENT AlterReplMirror (Datenbank, Replikationsspiegel)> <!ELEMENT Replikationsspiegel (Datenbank?, Benutzer-ID?, Kennwort?, Synchronisationsfenster?, (AddCustomLogic | RemoveCustomLogic)*)> <!--Mit AlterAdapter kann die Beschreibung eines Adapters geändert werden. Dies ist allerdings sehr selten erforderlich. --> <!ELEMENT AlterAdapter (Name, Adapter)> <!ELEMENT Adapter (Name?, Beschreibung?, Dateiattribute?, Befehlsattribute?, Kennung?, Klassenname?)> <!--Mit dem Befehl AlterFileSubscription können neue Einstellungen für eine Dateisubskription aufgelistet werden. Synchronisationsanforderungen an die Server, die online sind, werden während der Durchführung von Änderungen für kurze Zeit blockiert. Der Befehl zum Zurücksetzen, der ein LEERER Befehl ist, weist XML Scripting Tool an, die Dateisubskription so zu markieren, dass sie an die Geräte zurückgesendet wird. Dies ist in der Regel bei einer Modifikation der Datei erforderlich. Normalerweise erkennt Sync Server Änderungen an den zugeordneten Dateien nicht automatisch. Eine Dateisubskription muss zurück- gesetzt werden, damit die Geräte eine neue Version der Datei empfangen können. --> <!ELEMENT AlterFileSubscription (Name, Dateisubskription)> <!ELEMENT FileSubscription (Name?, Beschreibung?, Unteradapter?, Verschlüsselungsstufe?, Gerätetypen?, Quellendateiname?, Zieldateiname?, Zurücksetzen?)> <!ELEMENT Zurücksetzen EMPTY> <!--Mit dem Befehl AlterGroup können neue Einstellungen für eine Synchronisationsgruppe aufgelistet werden. Neue Subskriptionsgruppen können mit diesem Befehl in diese Gruppe eingefügt oder vorhandene aus der Gruppe ausgeschlossen werden. Datenfilter können hinzugefügt oder entfernt werden. Die Gruppe kann aktiviert oder inaktiviert werden. Name und Beschreibung können bei Bedarf ebenfalls geändert werden. --> <!ELEMENT AlterGroup (Name, Gruppe)> <!ELEMENT Gruppe (Name?, Beschreibung?, Aktiviert?, (IncludeSubscriptionSet | ExcludeSubscriptionSet | AddDataFilter | RemoveDataFilter)* )> <!ELEMENT ExcludeSubscriptionSet (Name)> <!--Zum Ändern eines Datenfilters muss dieser zunächst entfernt und anschließend erneut hinzugefügt werden. <!ELEMENT RemoveDataFilter (Name) > <!--Mit dem Befehl AlterUser können neue Einstellungen für einen Synchronisationsbenutzer aufgelistet werden. Der Benutzer kann mit diesem Befehl einer neuen Gruppe zugeordnet werden oder, falls für die Benutzergruppe <NULL/> angegeben wurde, aus der aktuellen Gruppe entfernt werden. Der Benutzer kann überschriebene Datenfilterwerte hinzufügen oder entfernen. Name, Kennwort und Beschreibung können bei Bedarf ebenfalls geändert werden. Der Befehl "LDAP-Merkmale" ist nur in LDAP-fähigen Umgebungen gültig. Dieser Befehl listet die LDAP-spezifischen Merkmale eines Benutzers auf. --> <!ELEMENT AlterUser (Name, Benutzer?)> <!ELEMENT Benutzer (Name?, Benutzergruppe?, Beschreibung?, Kennwort?, LDAP-Merkmale?, (OverrideDataFilter | RemoveDataFilter)* )> <!ELEMENT AlterLDAPProperties (Vorname?, Nachname?, E-Mail?, Bevorzugte Sprache?, Zweck?)> --> <!--AlterSubscriptionSet wird normalerweise zum Hinzufügen von Subskriptionen zu einer Subskriptionsgruppe bzw. zum Entfernen von Subskriptionen verwendet.--> <!ELEMENT AlterSubscriptionSet (Name, Subskriptionsgruppe?)> <!ELEMENT SubscriptionSet (Name?, Beschreibung?, (IncludeSubscription | ExcludeSubscription)* )> <!ELEMENT ExcludeSubscription (Name)> <!--Der Befehl AlterJdbcSubscription wird normalerweise zum Hinzufügen/ Entfernen von Tabellen einer JDBC-Subskription verwendet. Wenn Sie die Spiegel- oder Masterdatenbanken einer Subskription ändern möchten, müssen Sie eine neue Subskription erstellen, anstatt die vorhandene zu ändern. Beachten Sie, dass das JDBC-Verbindungskennwort einer Datenbank mit den Befehlen AlterJdbcMirror und AlterJdbcMaster geändert werden kann. Der Befehl AlterTable kann zum Ändern der Synchronisations- und Replikations- merkmale einer zugeordneten Tabelle verwendet werden. Ferner kann er zum Hinzufügen und Entfernen von Indizes für eine Tabelle verwendet werden. --> <!ELEMENT AlterJdbcSubscription (Name, JDBC-Subskription)> <!ATTLIST AlterJdbcSubscription Replizieren (TRUE | FALSE) "TRUE"> <!ELEMENT JdbcSubscription (Name?, Beschreibung?, Verschlüsselungsstufe?, Blockieren?, (AddTable | RemoveTable | AlterTable)*)> <!ELEMENT AlterUploadSubscription (Name, Hochladesubskription)> <!ELEMENT UploadSubscription (Name?, Beschreibung?, Verschlüsselungsstufe?, Blockieren?, (AddTable | RemoveTable | AlterTable)*)> <!ELEMENT AlterDproprSubscription (Name, DproprSubscription)> <!ELEMENT DproprSubscription (Name?, Beschreibung?, Verschlüsselungsstufe?, Blockieren?, (AddTable | RemoveTable | AlterTable)*)> <!ELEMENT RemoveTable (Zielschema, Zieltabelle)> <!ELEMENT AlterTable (Zielschema, Zieltabelle, Tabelle)> <!ELEMENT Tabelle (Zielschema?, Zieltabelle?, Quellenschema?, Quellentabelle?, Löschberechtigung, Einfügeberechtigung, Aktualisierungsberechtigung, Auswahlberechtigung, Spiegel-mobil-WHERE-Klausel?, Master-Spiegel-WHERE-Klausel?, Verknüpfungsfilter?, Tabellenbereich?, Reihenfolge, Verschlüsseln?, (AddIndex | AddCustomLogic | RemoveIndex | RemoveCustomLogic)*)> <!ELEMENT RemoveIndex (Name)> <!ELEMENT RemoveCustomLogic (Richtlinientyp)>
Zugehörige Konzepte