Verbindungen
MapEdit unterstützt die Datenstruktur von MapEdit und von AutoCAD Map 3D. Andere Datenstrukturen können ebenso eingebunden werden, entsprechend mit eingeschränkter Funktionalität.
Anhand der Farbe erkennen Sie im Baum den Typ des Datenmodels.
Die Beschreibung der Oracle Datenbankverbindung
Die Beschreibung der Postgres Datenbankverbindung
Die Beschreibung der SQLite Datenbankverbindung
Je nach Datenbankverbindungsstyp gibt es zum Teil unterschiedliche Funktionalitäten die in den Reitern Datenstruktur und Mehr ersichtlich sind.
Existierende Datenbank verbinden
Hiermit kann eine Verbindung zu einer bereits vorhandene Datenbanken erzeugt werden. Unterstützt werden die Datenbank System Oracle/SQLite/Postgre und SQLServer.
Klicken Sie auf den Button Existierende Datenbank verbinden in der Multifunktionsleiste und wählen Sie aus der Liste den Datenbanktypen aus.
Ab Version 23.1.*
gibt es ein Feld "Description (Beschreibung)".
Hier können Sie einen Beliebigen Kommentar Eintragen.
Oracle
Vergeben Sie einen eindeutigen Anzeigenamen für die Datenbankverbindung und legen Sie diese mit OK an. Der Benutzername (Oracle User), das Passwort und der Service für die Verbindung kann direkt eingetragen werden.
Alternativ können Sie mit dem Button ASSISTENT den Verbindungsassistenten öffnen. Tragen Sie den User SYSTEM, das Passwort und den Datenbank Service ein. Werden Sie viele Verbindungen einrichten, dann aktivieren Sie die Option Passwort merken. Mit Anmelden/Aktualisieren werden alle vorhanden Oracle Benutzer aufgelistet. Der ausgewählte Benutzer wird mit OK bei der Verbindung eingetragen.
Falls der MapEdit Benutzername in Oracle-Triggern verwendet wird, aktivieren Sie die Einstellung Benutze Client Identifier. Kontrollieren Sie das Passwort und speichern Sie die Verbindung. Das System liest nun die Struktur des Oracle Users sowie die Map 3D-Einstellungen. Das kann unter Umständen etwas dauern. Wenn der Vorgang abgeschlossen ist, werden die Infos in der rechten Spalte angezeigt.
Im Feld Extended Properties kann man bei der Datenbankverbindung die Verbindungsparameter einstellen. Für Oracle wird der DevArt Datenbank Provider benutzt. Was für Parameter hier eingestellt werden können finden Sie hier:
Wenn in der web.config UsePoolManager="ON" steht oder es keinen Eintrag gibt dann ist automatisch der MapEdit eigene Pooling Mechanismus eingeschalten. UND: Das Oracle Pooling ist dann immer ausgeschalten.
D.h. wenn bei Extended Parameter "Pooling=True" eintragen ist und bei "UsePoolManager" steht nicht "OFF" dann wird der Parameter "Pooling=True" ignoriert und das Oracle Pooling wird nicht verwendet.
Man muss sehr genau überlegen was man macht wenn am Oracle Pool oder sonst wo Einstellungen an Oracle verändert Werden.
MapEdit ist eine "Internet" Anwendung. MapEdit Mobile auch.
Das bedeutet:
Jede SQL Abfrage macht eine Datenbankverbindung auf, führt die Abfrage aus und macht die Verbindung dann wieder zu. Viele SQL Abfragen erfolgen nicht nacheinander sondern "gleichzeitig" ansonsten wird die Anwendung sehr sehr sehr langsam.
Damit es schneller geht wird die Verbindung nicht wirklich geschlossen sondern gepoolt, also offen gehalten. Aber: Irgendwann wird die Connection nach Nichtbenutzung geschlossen.
Wenn "ON_LOGON" zum Beispiel 15 Sekunden benötigt, bedeutet das folgendes:
MapEdit wird gestartet. Es sind vielleicht 20 Tooltips auf der Karte und 10 MapGuide Karten (wenn diese live sind und nicht gekachelt). Dann laufen 20 Tooltip Abfragen los, und 10 Abfragen an MapGuide, alles gleichzeitig.
Abfrage 1: Öffnet eine DB Verbindung und wartet nun 15 Sekunden.
Abfrage 2: Findet keine Verbindung im Pool und öffnet auch eine DB Verbindung und wartet nun 15 Sekunden
Abfrage 3: Findet keine Verbindung im Pool und öffnet auch eine DB Verbindung und wartet nun 15 Sekunden
usw.
Erst wenn die erste Abfrage durch ist kann die DB Verbindung wiederverwendet werden.
D.h. im Beispielfall gehen dann 30 Db Verbindungen auf.
Nun sieht man jede Menge Connections in seiner Oracle Datenbank. Und man meint das sei schlecht und setzt das Pool Limit herunter.
Das ist keine Gute Idee, denn nun werden zwar weniger Verbindungen benutzt.
Aber: Jede Abfrage muss nun warten bis die vorige Abfrage fertig ist, weil es wegen der Pool Beschränkung nun keine Verbindung öffnen darf und warten muss, und damit geht alles langsamer.....
Das passiert nicht nur beim Starten wenn man Tooltips etc hat, sondern auch beim öffnen von Generic Formularen, weil da gerne zig SQL Labels und 20 Kennungslisten etc eingebaut sind . Das Gleiche gilt für den Bildaufbau in Professional.
Daran denken dass nicht nur ein Client bedient wird sondern mehrere. Wenn also das Pooling limitiert oder das Timeout runtergesetzt wird dann muss alles bedacht werden...
Ansonsten kann es sein, dass das nächste Öffnen des Generic Dialoges dann 5 Minuten dauert.
Postgres
Vergeben Sie einen eindeutigen Anzeigenamen für die Datenbankverbindung und legen diese mit OK an. Hinterlegen Sie Benutzernamen und Passwort, den Port und den Servernamen sowie den Namen der Datenbank.
Speichern Sie die Verbindung. Das System liest nun die Datenbankstruktur. Das kann unter Umständen etwas dauern. Wenn der Vorgang abgeschlossen ist, werden die Infos in der rechten Spalte angezeigt.
In der Box "Extended Properties" können optional weitere optionale Parameter angegeben werden wie Connection Pooling Einstellungen und fixe Schemennamen (SEARCHPATH).
Die Einstellungen können ebenfalls in der pg_hba.conf eingestellt werden, falls Zugriff darauf besteht.
Postgres - Benutze Client Identifier
Ab Version 24.2.128
Wird diese Option eingeschalten dann wird die Session Variable "client.identification" mit dem Namen des Login Benutzers gefüllt.
Auf diese kann dann in Trigger etc zugegriffen werden.
Beispiel:
SELECT NULLIF(current_setting('client.identification'),'');
Database aus Liste auswählen
Ab Version 24.1.65 finden Sie hinter "Database" einen Knopf. Mit diesem können Sie wenn Benutzername/Passwort/Server und Port ausgefüllt sind alle vorhandenen Datenbanknamen angezeigt und ausgewählt werden.
Bei Benutzername muss ein Benutzer mit "Superuser" Rechten eingegeben werden. Diese ist im Standardfall der Benutzer "postgres". Dieser Benutzer muss die Rechte haben alle Datenbanknamen mit
SELECT datname FROM pg_database
abfragen zu können damit diese Funktion genutzt werden kann.
SQLite
Vergeben Sie einen eindeutigen Anzeigenamen für die Datenbankverbindung und legen diese mit OK an. In das Feld Dateiname tragen Sie den vollständigen Pfad (lokal auf dem Server) zum Verzeichnis und den Dateinamen ein.
Beachten Sie, dass der Windows-Benutzer IIS\IUSRS
Lese- und Schreibrechte auf das Verzeichnis mit der SQLite-Datei benötigt.
Alternativ können Sie mit dem Button ASSISTENT den Verbindungsassistenten öffnen. Es werden alle SQLite-Datenbanken im Verzeichnis MumGeoData\Databases
abgelegt sind. Wenn Sie das gewünschte File auswählen, werden Pfad und Dateiname automatisch übernommen. Speichern Sie die Verbindung. Das System liest nun die Datenbankstruktur. Das kann unter Umständen etwas dauern. Wenn der Vorgang abgeschlossen ist, werden die Infos in der rechten Spalte angezeigt.
Die Geometriedaten müssen in SQLite im Format FGF (das Format, das auch von FDO unterstützt wird) vorhanden sein damit diese gelesen/geschrieben werden können.
Bei SQLite ist darauf zu achten, dass das Datenbankfile im Infrastructure Studio bzw. MapGuide Maestro als unmanaged eingebunden wird und dass FDO Enabled = TRUE
eingestellt ist (in den Eigenschaften der Datenbankverbindung). Sonst sind Änderungen (z.B. Digitalisieren) nicht sofort in der Karte sichtbar.
SQLServer (experimental)
Eine Beta Version des SQLServer Anschlusses steht ab Release 22.2.58 zur Verfügung.
SQL Server Datenbanken werden unterstützt sind aber noch in der Beta Phase und noch nicht vollständig getestet und supported. Melden Sie Probleme mit SQL Server bitte an ihre MapEdit Hotline.
Neue Datenbank erzeugen
Mit dieser Funktion haben Sie die Möglichkeit eine neue Datenbank (Oracle / SQLite / Postgre / SQL Server ) anzulegen.
Die Funktion erzeugt immer eine Datenbank mit einer MapEdit Datenmodell Datenstruktur. Map 3D Datenbanken können hiermit nicht erzeugt werden. Verwenden Sie dazu bitte den Autodesk Map Admin.
Im ersten Schritt muss immer das Login für den Superuser/System Benutzer bei UserId angegeben werden.
Dies ist im Normalfall bei postgres Datenbanken der User "postgres" kann aber auch ein Superuser der Rechte hat Datenbanken anzulegen.
Bei Oracle Datenbanken ist dies im normalfall der Benutzter "SYSTEM".
Geben Sie in dem darauf folgenden Dialog bei Benutzername den Namen der neuen Datenbank ein und das Koordinatensystem das Sie verwenden wollen.
Alle testen (Button Aktualisieren)
Mit dieser Funktion wird geprüft ob alle Verbindungen korrekt sind. Wenn Fehler auftreten werden diese protokolliert.
Verbindungspool zurücksetzen
Ab Version 23.1.87
Mit diesem Knopf können die Datenbankverbindungspools zurückgesetzt werden.
MapEdit hat auf Server Seite bei Oracle und SQLite zusätzlich zum Standard Datenbank Verbindungs Pooling des jeweiligen Datenbanksystem einen eigenen Verbindungspool. Bei Postgres wird dies nicht verwendet. Dieser Pool wird hiermit auch zurück gesetzt.
Diese Funktion wird benötigt wenn sie z.B. eine Datenbank händisch mittels eine Thirt Party Tools oder bei SQLite Datenbank mittels Datei Manager löschen wollen.
Beim AppBuilder Knopf "Datenbank löschen" wird dies nicht benötigt. Hier erfolgt ein zurücksetzen automatisch.
Formulare Synchronisieren
Das "Formulare Synchronisieren" muss immer dann ausgeführt werden, wenn in Autodesk Map mit dem TB Admin im Form Designer Änderungen an den Formularen gemacht wurden. MapEdit weiß von diesen Änderungen nichts und zeigt dann weil die Formulare gecached sind alte Versionen dieser Dialoge an.
Dieser Schritt ist nicht notwendig wenn die Formulare ausschließlich mit dem Form Designer in MapEdit AppBuilder erzeugt und bearbeitet werden.
Datenbank löschen
ab Version 22.2.58
Hier können Sie einen oder mehrere Oracle, Postgres und SQLServer Datenbank User löschen.
Es ist dazu das System/Super User Login der Datenbank erforderlich. Dieser User muss Rechte zum Löschen von Datenbankusern und Tabellen haben. Das Passwort muss aus Sicherheitsgründen eingegeben werden und wird sich nicht gemerkt.
Es können nur Datenbankuser gelöscht werden die die Tabellen ME_TOPIC oder TB_DICTIONARY beinhalten. Dadurch wird gewährleistet das nur MapEdit Datenbanken gelöscht werden können.
Stellen Sie sicher das die Datenbank nicht im Zugriff von MapServer, MapGuide, Oracle Tool, pgAdmin oder irgend einer anderen Software ist, ansonsten kann die Datenbank nicht gelöscht werden.
SQL Abfrage
Mit dieser Funktion starten Sie das AppBuilder internen SQL Abfrage Werkzeug. Mit diesem können Sie Abfragen via SQL ausführen.
Details siehe:
https://help.mapedit.de/admin-guide/mapedit-appbuilder/database-connections/Sql/QueryTool
Sie können Ihre Datenaber auch einfach direkt im AppBuilder anzeigen lassen, ohne jeweils ein „Select Statement“ absetzen zu müssen.
Zudem können Sie zwischen den Objektklassen wechseln und sich sofort die jeweiligen Datensätze anzeigen lassen.
Hierfür öffnen Sie die gewünschte Datenverbindung.
Anschließend navigieren Sie sich über die Baumstruktur innerhalb der Fachschale auf die gewünschte Objektklasse
Wechseln Sie nun im Register von „Datastructure“ auf „Daten“.
Hier werden die Daten so angezeigt, wie Sie in der Datenbank hinterlegt sind bzw. wie Sie die Daten mittels eines Select Statements abfragen würden.
Des Weiteren können Sie sich das Relationen Diagramm der jeweiligen Objektklasse anzeigen lassen
Verschiedene Ansichten der Datenstruktur
Es gibt verschiedene Ansicht auf die Objekte der Datenstruktur. Objekte der Datenstruktur können Tabellen/Views/Synonym und Datenbank Links sein.
Ansicht Baum:
Zeigt alle Objekte in der Baumstrukur an in der sie der Benutzer angelegt hat.
Ansicht Tabellen:
Tabellen/Views/Synonym und Datenbank Links werden alphabetisch sortiert nach dem Namen angezeigt.
Ansicht Titel:
Tabellen/Views/Synonym und Datenbank Links werden alphabetisch sortiert nach dem Titel angezeigt.
Der Titel wurde vom Anwender beim anlegen des Objektes vergeben.
Ansicht Typ:
Alle Datenbankobjekte (Tabellen/Views/Synonym und Datenbank Links) werden gruppiert nach Typ angezeigt.
Beachten Sie das ein Datenbankobjekt von mehreren Typen sein kann.
Ein View der Punkte enthält ist also in der Gruppe "View" und in der Gruppe "Point".
Das bedeutet nicht das das Objekt mehrfach vorhanden ist.