Im Push-Verfahren btw. unter SuperX können Sie mitgelieferte Shellscripte nutzen. Das folgende Beispiel des ZUL-Moduls zeigt das Vorgehen:
Die Entladescripte liegen im Verzeichnis $SUPERX_DIR/db/module/zul/rohdaten und lauten je nach Systemversion:
zul_unload.x
Die Scripte laufen nur, wenn die entsprechenden Umgebungsvariablen in der Datei ZUL_ENV (im gleichen Verzeichnis, ein Muster liegt vor in ZUL_ENV.sam) korrekt gesetzt sind, benennen Sie die Musterdatei um nach ZUL_ENV und tragen die richtigen Umgebungsvariablen ein, z.B. den Pfad für $INFORMIXDIR.
ZUL_ENV Die Umgebung für Entladescripte aus ZUL-GX(Auszug)
##Pfad für Entladedaten: ZUL_PFAD=.; export ZUL_PFAD ##hier muss Unterverzeichnis unl existieren!
In der ZUL_ENV müssen außerdem folgende Umgebungsvariablen gesetzt werden (defaults sind bereits vorbelegt, aber hier und da müssen Sie sicher ran):
Variable | Erläuterung |
---|---|
Nur für Informix gelten: | |
INFORMIXDIR | Home-Verzeichnis von Informix |
INFORMIXSERVER | Name des Informixservers |
ONCONFIG | Name der onconfig, wenn auf dem SOS-Rechner mehrere Informix-Instanzen laufen |
CLIENT_LOCALE | Sprachumgebung (wichtig fürs Entladen von Datumsformaten) |
SERVER_LOCALE | dito |
Variable | Erläuterung |
---|---|
Nur für Postgres gelten: | |
PGDATESTYLE | Datumsformat "German" |
PGPORT | Port vom Postgres-Server, standardmäßig 5432 |
PGHOST | Hostname oder IP-Adresse vom Postgres-Server |
PGUSER | Benutzerkennung für Postgres-Server (nur Datenbank, nicht Betriebssystem) |
PGPATH | Installationsverzeichnis von Postgres, z.B. /usr/local/pgsql |
DB_PROPERTIES | Pfad zur db-zul.properties-Datei mit den Zugangsparametern für SOSPOS unter Postgres |
LOGGING_PROPERTIES | Pfad zur Steuerungsdatei mit den Parametern für das Logging beim Entladen, voreingestellt auf ./logging.properties. Normalerweise brauchen Sie hier nichts ändern, wenn beim Entladen Probleme auftauchen, kann man den Level von SEVERE auf INFO oder FINEST ändern, dann werden die konkreten SQLs geloggt. Aber Achtung: wenn keine Fehler mehr auftreten, müssen Sie den Level wieder auf SERVERE ändern, sonst kommen Schlüsselworte in die Logdatei zul_unload.err, die dann bei der Übernahme nach SuperX fälschlicherweise zu Fehlermeldungen führen. |
Unter Postgres muss für das "Pull"-Verfahren beim Entladen die Datenbankverbindung in der Datei db-zul.properties eingetragen werden (Muster für Postgres liegt bei in db-zul_pg.properties). Dazu laden Sie einmal die Datei ZUL_ENV mit den obigen Parameter, starten den SuperX-Propadmin (siehe Administrationshandbuch Kernmodul) und richten die Verbindung zum SOSPOS-Server ein. Das Kennwort wird verschlüsselt gespeichert. Danach sind die Entladescripte für Postgres ausführbar.
Hinweis: Anders als Informix hat Postgres hat eine eigene, vom Basissystem unabhängige Benutzerverwaltung. Daher brauchen Sie den User, den Sie zum Entladen aus Postgres nutzen, nicht auf dem SuperX- oder SOSPOS-Rechner auf Betriebssystem-Ebene einrichten. Sie können also z.B. auf dem SuperX-Rechner zum Entladen aus SOSPOS die Kennung sospos des Postgres- Rechners verwenden. Oder Sie richten in der SOSPOS -Datenbank den Benutzer SuperX ein und geben ihm Leserecht auf die Tabellen sowie das Recht, Tabellen und Stored Procedures anzulegen.
Variable | Erläuterung |
---|---|
Für alle Platformen gelten folgende Variablen: | |
ERRORMAIL | An wen solle eine Logmail verschickt werden, wenn das Entladen nicht geklappt hat? (nur Unix). |
LOGMAIL | An wen soll immer eine Logmail verschickt werden |
MAILPROG | Pfad zum ausführbaren Mailprogramm unter Unix, Vorbelegung ist "mail", manche Unixe haben aber auch "mutt" oder "mailx". |
Wenn die Rohdaten beim Push-Verfahren nach dem Entladen vom ZUL-Rechner auf den SuperX-Rechner kopiert werden sollen, dann werden für das Script zul_copy.x folgende Umgebungsvariablen benötigt: | |
COPY_METHOD | Programm, das die Dateien kopiert; rsync und scp sind wählbar. |
REMOTE_DIR | Verzeichnis, in das die Rohdaten auf dem SuperX-Rechner kopiert werden sollen, in der Regel ist dies "/home/superx/db/module/zul/rohdaten" |
REMOTE_USER | Der Unix-Username auf dem SuperX-Rechner, in der Regel "superx". |
REMOTE_HOST | Der Rechnername bzw. die IP-Nr. des SuperX-Rechners. |
Dann starten Sie das Script zul_unload.x. Wenn es gelaufen ist, müssten die Dateien im unl-Verzeichnis stehen. Prüfen Sie dann bitte, ob dort Dateien mit 0 bytes stehen. Die Logdatei heisst zul_unload.err.