Das Schema eines Datasets besteht aus den Feldern und deren Definitionen, die im Dataset enthalten sind. Werden sie geändert, wird auch das Schema des Datasets geändert. Ein Kartenservice (Kartenbild-Layer) nutzt standardmäßig Schemasperren, um Änderungen am Schema des referenzierten Datasets zu verhindern, während der Service ausgeführt wird. Durch das Sperren des Schemas erleben die Benutzer des Kartenservice kein unerwartetes Verhalten, wie fehlende Layer und Felder, fehlschlagende Abfragen oder die Nichtverfügbarkeit des Service.
Es kann vorkommen, dass Sie das Schema eines Datasets ändern möchten, das als Kartenservice veröffentlicht wurde. Möglicherweise müssen Sie ein neues Feld zu einer Feature-Class hinzufügen, die auf ein Feld in einer Feature-Class angewendeten Subtypes ändern, ein Feld hinzufügen oder löschen, Domänen ändern oder die Symbolisierung eines Layers in der Karte ändern, die Sie zum Veröffentlichen verwendet haben. In diesen Fällen ist es wichtig, die Schemaänderung vor der Implementierung sorgfältig zu planen.
Durchführen von Schemaänderungen
Es empfiehlt sich, Schemaänderungen mit einem geplanten Service-Ausfall in der Organisation vorzubereiten und durchzuführen.
Führen Sie die folgenden Schritte aus, um ein Schema zu ändern.
- Identifizieren Sie die Services, die auf die Datasets zugreifen, bei denen Schemaänderungen nötig sind.
Um die von einem Service verwendeten Datasets zu identifizieren, öffnen Sie den Service-Workspace für einzelne Services in ArcGIS Server Manager, oder führen Sie als ArcGIS Server-Site-Administrator den Service-Manifest-Vorgang in der ArcGIS Server-Administrator-REST-API aus.
- Melden Sie sich bei ArcGIS Server Manager an.
- Beenden Sie die einzelnen betroffenen Services.
- Nehmen Sie die Schemaänderungen an den Quelldaten vor.
- Starten Sie den Service in ArcGIS Server Manager.
Wenn der Service gestartet wird, übernimmt er die Schemaänderungen, mit denen vorhandene Felddefinitionen geändert wurden. Dazu gehören Änderungen am Datentyp des Feldes in der Geodatabase oder der Datenbank, für Subtypes aktivierte Felder, auf ein Feld angewendete Subtypes, zu einem Feld hinzugefügte Domänen, geänderte vorhandene Domänen und geänderte Attributregeln.
Hinweis:
Wenn Sie ein Feld zu Quelltabelle hinzugefügt oder daraus gelöscht haben, müssen Sie den Kartenservice überschreiben.
Änderungen auf Kartenebene und Kartenservices
Damit Karten- oder Karten-Layer-Änderungen in einem Kartenservice widergespiegelt werden, müssen Sie den Kartenservice überschreiben.
Änderungen auf Kartenebene sind Änderungen an den Karten- oder Layer-Einstellungen innerhalb der Karte. Die Arten von Änderungen umfassen u. a. folgende:
- Hinzufügen oder Entfernen von Layern, einschließlich Topologie-Layern und Beziehungsklassen
- Ändern eines Feldaliasnamens im Karten-Layer oder Ändern des Karten-Layer-Aliasnamens
- Ändern der Symbolisierungs-, Transparenz- oder Beschriftungseigenschaften eines Layers
- Anwenden von maßstabsabhängigem Rendern
- Definieren oder Ändern der Bearbeitungsvorlage (gilt für Kartenservices mit aktiviertem Feature-Zugriff)
- Ändern der Abfrage-Layer-Definition, wenn die Quelle ein Abfrage-Layer ist
Ändern der Einstellung für die Schemasperre des Kartenservice
In einigen Organisationen, die nach strengen Service-Level-Vereinbarungen (SLAs) arbeiten, müssen Schemaänderungen vorgenommen werden, während der Kartenservice gleichzeitig aufrufbar bleibt. Um die Zeit zu minimieren, die ein Kartenservice nicht ausgeführt wird, können Sie Schemasperren für den Kartenservice deaktivieren. Dann können Sie das Schema des referenzierten Datasets ändern, ohne den Kartenservice zu beenden.
Beachten Sie Folgendes, bevor Sie Schemasperren deaktivieren:
- Wenn Schemasperren deaktiviert sind, sollten Sie ein Schema nur aktualisieren, wenn sich ein Service im Leerlauf befindet. Wenn Sie das Schema bei ausgelastetem Service aktualisieren, erleben Benutzer des Kartenservice unter Umständen ein unerwartetes Verhalten, z. B. fehlende Layer und Felder, fehlschlagende Abfragen und nicht verfügbare Services.
- Zum Ändern der Einstellung für Schemasperren müssen Sie den Service neu starten. Damit Änderungen widergespiegelt werden, wenn Sie Schemasperren für den Service deaktivieren, müssen Sie den Kartenservice zudem entweder neu starten, nachdem Schemaänderungen abgeschlossen wurden, die die Definition vorhandener Felder ändern, oder den Kartenservice überschreiben, falls Sie ein Feld hinzugefügt oder gelöscht haben.
- Sie können die Schemasperren nicht für Kartenservices deaktivieren, die für die Verwendung des Pools für geteilte Instanzen konfiguriert sind.
Führen Sie die folgenden Schritte aus, um Schemaänderungen zuzulassen, während ein Kartenservice ausgeführt wird:
- Identifizieren Sie die Services, die auf die Datasets zugreifen, bei denen Schemaänderungen nötig sind.
Um die von einem Service verwendeten Datasets zu identifizieren, öffnen Sie den Service-Workspace für einzelne Services in ArcGIS Server Manager, oder führen Sie als ArcGIS Server-Site-Administrator den Service-Manifest-Vorgang in der ArcGIS Server-Administrator-REST-API aus.
- Melden Sie sich bei ArcGIS Server Manager an.
- Vergewissern Sie sich, dass der Kartenservice nicht verwendet wird.
Um herauszufinden, ob ein Service im Leerlauf ist, suchen Sie den relevanten Kartenservice in ArcGIS Server Manager, und stellen Sie sicher, dass der Wert Verwendete Instanzen null ist.
- Klicken Sie auf Services > Services verwalten.
- Suchen Sie nach dem Kartenservice, und klicken Sie auf Bearbeiten.
Hinweis:
Wenn der Kartenservice nicht in der Liste angezeigt wird, befindet er sich möglicherweise in einem Unterordner des Site-Ordners (Stammverzeichnis). - Klicken Sie auf Parameter.
- Deaktivieren Sie Datenbankschema sperren.
- Klicken Sie auf Speichern und neu starten.
Der Karteservice hält keine Schemasperren für die Datasets, die referenziert werden.
Schemaänderungen können jetzt vorgenommen werden, während der Kartenservice ausgeführt wird.
- Führen Sie einen der folgenden Schritte aus, damit der Kartenservice die Änderungen widerspiegelt:
- Beenden und starten Sie den Service.
- Wenn Sie Felder hinzugefügt oder gelöscht bzw. Änderungen auf Kartenebene vorgenommen haben, überschreiben Sie den Service.
Hinweis:
Das Deaktivieren von Schemasperren für den Kartenservice verhindert Schemasperren nur für den jeweiligen Service. Andere ArcGIS-Anwendungen und -Services sowie Anwendungen von Drittanbietern können weiterhin exklusive Sperren für das Schema abrufen. Falls Sie das Schema des Dataset nach dem Deaktivieren der Schemasperren für den Kartenservice nicht aktualisieren können, finden Sie weitere Informationen im Thema Sperren bei Enterprise-Geodatabases.
Erneutes Aktivieren der Schemasperre
Führen Sie die folgenden Schritte aus, um Schemaänderungen zu unterbinden, während ein Service ausgeführt wird:
- Klicken Sie auf Services > Services verwalten.
- Suchen Sie nach dem Kartenservice, und klicken Sie auf Bearbeiten.
Hinweis:
Wenn der Kartenservice nicht in der Liste angezeigt wird, befindet er sich möglicherweise in einem Unterordner des Site-Ordners (Stammverzeichnis). - Klicken Sie auf Parameter.
- Aktivieren Sie Datenbankschema sperren.
- Klicken Sie auf Speichern und neu starten.
Der Kartenservice lässt es nicht mehr zu, dass Änderungen am Schema des referenzierten Datasets vorgenommen werden, während der Service ausgeführt wird.