comparison flys-aft/README.txt @ 4114:ae5119da92cd

merged flys-aft
author Thomas Arendsen Hein <thomas@intevation.de>
date Thu, 11 Oct 2012 14:54:10 +0200
parents f72c253663fc
children 840250040a7d
comparison
equal deleted inserted replaced
4066:f02aa4ff3c0f 4114:ae5119da92cd
1 FLYS-AFT:
2 """""""""
3
4 Der FLYS-AFT-ETL-Prozessor aktualisiert eine FLYS-Datenbank mithilfe
5 eines DIPS-XML-Exports und einer AFT-Datenbank in bezug auf Pegel und
6 Abflusstafeln.
7
8 Vorbedingungen:
9 ---------------
10
11 * Es existiert ein DIPS-XML-Export unter einen erreichbaren Pfad
12 im Dateisystem.
13
14 * Es existiert eine AFT-Datenbank mit bekannten Credentials.
15
16 * Es existiert eine FLYS-Datenbank mit bekannten Credentials.
17
18 Bau:
19 ----
20 * Maven2 sollte installiert und im Pfad liegen.
21 ( http://maven.apache.org/docs/2.2.1/release-notes.html )
22
23 $ mvn --version
24 Sollte Versionsinformationen ausgeben.
25
26 * Für die Nutzung der Oracle JDBC-Bindings muss das Oracle-Treiber-Jar
27 in das lokale Maven-Repository installiert werden:
28
29 $ mvn install:install-file -DgroupId=ojdbc5.jar -DartifactId=ojdbc5 \
30 -Dversion=0 -Dpackaging=jar -Dfile=ojdbc.jar -DgeneratePom=true
31
32 * Für den eigentlichen Oracle-kompatiblen Bau kann dann folgendes
33 aufgerufen werden:
34
35 $ mvn -f pom-oracle.xml clean compile assembly:single
36
37 $ cp target/de.intevation.aft-1.0-SNAPSHOT-jar-with-dependencies.jar \
38 bin/etl.jar
39
40 * Folgendes führt das fertige Programm dann aus:
41
42 $ bin/run.sh
43
44 Konfiguration:
45 --------------
46
47 Zur Konfiguration wird eine Konfiguration-Datei benötigt. Diese wird
48 standardmässig im aktuellen Arbeitsverzeichnis uter dem Name 'config.xml'
49 gesucht. Der Pfad zu dieser Datei kann allerdings auch mit der
50 System-Property config.file gesetzt werden.
51
52 Dies geschieht über den Kommandozeilenparameter "-Dconfig.file=/pfad/zur/config.xml"
53 im Start-Skript bin/run.sh
54
55 Die Konfigurationsdatei hat folgende Struktur:
56
57 1 <?xml version="1.0" encoding="UTF-8"?>
58 2 <sync>
59 3 <!-- If modified send messages -->
60 4 <notifications>
61 5 <notifaction url="http://example.com">
62 6 <caches>
63 7 <cache name="my-cache"/>
64 8 </caches>
65 9 </notifaction>
66 10 </notifications>
67 11 <!-- The path to the DiPs file -->
68 12 <dips>
69 13 <file>/the/path/to/the/dips/file</file>
70 14 <repair>/the/path/to/the/xslt/to/repair/dips</repair>
71 15 </dips>
72 16 <!-- The FLYS side -->
73 17 <side name="flys">
74 18 <db>
75 19 <driver>oracle.jdbc.OracleDriver</driver>
76 20 <user>flys</user>
77 21 <password>flys</password>
78 22 <url>jdbc:oracle:thin:@//localhost:1521/XE</url>
79 23 </db>
80 24 </side>
81 25 <!-- The AFT side -->
82 26 <side name="aft">
83 27 <db>
84 28 <driver>oracle.jdbc.OracleDriver</driver>
85 29 <user>aft</user>
86 30 <password>aft</password>
87 31 <url>jdbc:oracle:thin:@//localhost:1521/XE</url>
88 32 </db>
89 33 </side>
90 34 </sync>
91
92 Sie besteht aus vier Bereichen:
93
94 * DIPS:
95 Zeile 13: Pfad zur XML-Datei mit dem DIPS-Export
96 Zeile 14: Pfad zur Reparatur-XSL-Transformation (s.u.).
97 Dieser ist optional.
98 * FLYS:
99 Zeile 19: JDBC-Treiber für den Zugriff auf die FLYS-Datenbank
100 Zeile 20: DB-Nutzername
101 Zeile 21: Connection-URL zur FLYS-Datenbank
102
103 * AFT:
104 Zeile 28: JDBC-Treiber für den Zugriff auf die AFT-Datenbank
105 Zeile 29: DB-Nutzername
106 Zeile 30: Connection-URL zur AFT-Datenbank
107
108 * Benachrichtigungen:
109 Zeile 5: URL des Web-Service, der benachrichtigt werden soll.
110 Zeile 6-18: Die Nachricht, die an den Web-Service verschickt werden soll.
111
112 Funktionsweise:
113 ---------------
114
115 Als erstes wird die DIPS-Datei geladen. Ist angegeben, dass
116 eine Reparatur-XSL-Transformation auf diese angewendet werden
117 soll, wird diese ebenfalls gelanden und auf das DIPS-Dokument
118 angewandt.
119
120 !!! Hinweis: Unter doc/repair.xsl findet sich eine Beispiel-Transformation,
121 !!! Die mithilfe von doc/pegelstationen.xml für die Flüsse
122 !!! Saar, Mosel und Elbe die Pegelnummern der FLYS-Pegel
123 !!! auf die Pegelnummernvon Pegel-Online anpasst.
124
125 Die so vorbehandelten DIPS-Daten werden mit der AFT-Datenbank
126 verbunden. Verbindungspunkt ist hierbei die Pegelnummer, die
127 in beiden Systemen gleich sein muss.
128
129 Wurde für einzelne Pegel die Verbindung zwischen AFT und DIPS
130 erfolgreich hergestellt, wird versucht mit der entsprechenden
131 Pegelnummer auch eine Verbindung zu FLYS hergestellt.
132
133 Werden Pegel in AFT und DIPS gefunden, die sich nicht in FLYS befinden,
134 werden diese in FLYS angelegt und mit den Abflusstafeln aus AFT
135 gefüllt.
136
137 Werden Pegel in AFT, DIPS und FLYS gefunden, werde die Abflusstafeln
138 in FLYS mithilfe von AFT aktualisiert. Die Verbindung der Abflusstafeln
139 wird über deren Bezeichner hergestellt:
140
141 AFT: "ABFLUSSTAFEL.ABFLUSSTAFEL_BEZ"
142 FLYS: "discharge_tables.decsription"
143
144 Für alle vorhandenen Paare von AFT/FLYS-Abflusstafeln werden
145 die W/Q-Werte abgeglichen und FLYS entsprechend aktualisiert.
146 Abflusstafeln, die in FLYS noch nicht vorhanden sind, werden
147 in FLYS übernommen.
148
149 Wenn es nach dem Abgleich der AFT- und FLYS-DB eine Veränderung
150 in FLYS gegeben hat, können an konfigurierbare Web-Dienste
151 Nachrichten verschickt werden, dass sich Daten geändert haben.
152 Die FLYS-Applikation selbst bestitzt einen Dienst, der aufgerufen
153 werden kann, um dessen internen Caches zu invalidieren.
154 Dies vermeidet Dateninkonsistenzen.
155
156 Fehlermeldungen:
157 ================
158
159 Wärend die Synchronisationsprozesses können verschiedene Fehler
160 auftreten.
161
162 Allgemein:
163 ----------
164
165 SYNC: syncing failed.
166
167 Wärend der Synchronisation ist ein Fehler aufgetreten. Details
168 finden sich in der Regel oberhalb dieser Fehlermeldung.
169
170 REPAIR: Cannot open DIPS repair XSLT file.
171
172 Die zur Reparatur angegebene XSL-Transformation konnte nicht geladen
173 werden.
174
175 REPAIR: Fixing DIPS failed.
176
177 Die Anwendung der XSL-Transformation zur Reparatur der DIPS-Daten
178 ist fehlgeschlagen. Datails hierzu sollten sich oberhalb dieser
179 Fehlermeldung zu finden sein.
180
181 Benachrichtigung:
182 -----------------
183
184 NOTIFY: Invalid URL '<URL>'. Ignored.
185
186 Die zur Benachrichtigung angegebene URL ist nicht valide und
187 wird daher ignoriert.
188
189 NOTIFY: '<URL>' is not an HTTP(S) connection.
190
191 Die zur Benachrichtigung angegebene URL öffnet keine
192 HTTP- bzw. HTTPS-Verbindung.
193
194 NOTIFY: Sending message to '<URL>' failed.
195
196 Der Versand der Benachrichtigung an die URL ist fehlgeschlagen.
197
198 DIPS:
199 -----
200
201 DIPS: MESSSTELLE '<NAME>' not found in DIPS. Gauge number used for lookup: <NUMMER>
202
203 Es wurde vergeblich versucht, mithilfe einer AFT-Pegelnummer in DIPS
204 ein entsprechendes Gegenstück zu finden.
205
206 DIPS: MESSSTELLE '<NAME>' is assigned to river '<FLUSS1>'. Needs to be on '<FLUSS2>'.
207
208 Aus Sicht von AFT wird Messstelle <NAME> an <FLUSS2> erwartet.
209 DIPS ordnet sie aber <FLUSS1> zu.
210
211 DIPS: Gauge '<PEGEL>' has no datum. Ignored.
212
213 Der DIPS-Pegel <PEGEL> hat keinen PNP und kann deshalb nicht
214 importiert werden.
215
216 DIPS: Setting AEO of gauge '<NAME>' to zero.
217
218 Der AEO-Wert ist bei dem DIPS-Pegel <NAME> nicht gesetzt und
219 wird mit Null angenommen.
220
221 DIPS: Setting station of gauge '<NAME>' to zero.
222
223 Der DIPS-Pegel '<NAME>' hat keine zugeordnete Stationierung und
224 es wird angenommen, dass dieser an km 0 liegt.
225
226 DIPS: Station of gauge '<NAME>' is zero.
227
228 Im Regelfall ist ein Stationierung an km 0 ein Datenfehler.
229
230 DIPS: Cannot find '<DATEINAME>'.
231
232 Der Pfad zum XML-Dokument mit den DIPS-Daten konnte nicht gefunden
233 werden.
234
235 DIPS: Cannot load DIPS document.
236
237 Das XML-Dokument mit den DIPS-Daten konnte nicht geladen werden.
238
239 DIPS: '<NAME2>' collides with '<NAME1>' on gauge number <NUMMER>.
240
241 In DIPS gibt es zwei Pegel mit NAME1 und NAME2, die dieselbe Pegelnummer
242 haben.
243
244 DIPS: Gauge '<NAME>' has invalid gauge number '<NUMBER>'.
245
246 Der DIPS-Pegel Name hat eine Pegelnummer <NUMMER>, die sich nicht
247 in einen 64bit-Integer erwandeln lässt.
248
249 AFT:
250 ----
251
252 AFT: ABFLUSSTAFEL_NR = <NUMMER>: <GUELTIG_VON> > <GUELTIG_BIS>. -> swap
253
254 Eine AFT-Abflusstafel hat vertauschte GUELTIG_VON- und GUELTIG_BIS-Werte.
255 Diese werden implizit in die zeitlich richtige Reihenfolge gebracht.
256
257 FLYS/AFT: Value duplication w=<W> q=<Q>. -> ignore.
258
259 Beim Laden einer Abflusstafel wurden ein W/Q-Duplikat entdeckt
260 und ignoriert.
261
262 AFT: Invalid MESSSTELLE_NR for MESSSTELLE '<NAME>':
263
264 Die Messtellen-Nummer für die Messtelle <NAME> ist ungültig.
265 Erwartet wird ein String, der sich in einen 64bit-Integer umwandeln lässt.
266
267 AFT: Found discharge table '<BESCHREIBUNG>' with same description. -> ignore.
268
269 In AFT wurde eine Abflusstafel gefunden, die die gleiche Bezeichnung
270 trägt wie eine andere, die demselben Pegel zugeordnet ist. Somit
271 ist keine eindeutige Zuordnung möglich.
272
273 FLYS:
274 -----
275
276 FLYS: Found discharge table '<BESCHREIBUNG>' with same description. -> ignore
277
278 In FLYS wurde eine Abflusstafel gefunden, die die gleiche Bezeichnung
279 trägt wie eine andere, die demselben Pegel zugeordnet ist. Somit
280 ist keine eindeutige Zuordnung möglich.
281
282 FLYS: Gauge '<PEGEL>' has no official number. Ignored.
283
284 Der Pegel <PEGEL> in FYLS hat keinen Pegelnummer und wird deshalb
285 nicht in Betracht gezogen.
286
287 FLYS: Gauge '<PEGEL>' number is not found in AFT/DIPS.
288
289 Der Pegel <PEGEL> hat eine Pegelnummer, die aber nicht in AFT/DIPS
290 zu finden ist.
291
292 FLYS: discharge table <ID> has no description. Ignored.
293
294 Die Abflusstafel in FLYS hat keine Beschreibung. Diese wird
295 allerdings zum Abgleich mit DIPS/AFT benötigt.
296
297 FLYS: Found discharge table '<BESCHREIBUNG>' with same description. -> ignore
298
299 In FLYS wurde eine Abflusstafel gefunden, die die gleiche Bezeichnung
300 trägt wie eine andere, die demselben Pegel zugeordnet ist. Somit
301 ist keine eindeutige Zuordnung möglich.
302
303 FLYS: Gauge '<PEGEL>' has no official number. Ignored.
304
305 Der Pegel <PEGEL> in FYLS hat keinen Pegelnummer und wird deshalb
306 nicht in Betracht gezogen.
307
308 FLYS: Gauge '<PEGEL>' number is not found in AFT/DIPS.
309
310 Der Pegel <PEGEL> hat eine Pegelnummer, die aber nicht in AFT/DIPS
311 zu finden ist.
312
313 FLYS: discharge table <ID> has no description. Ignored.
314
315 Die Abflusstafel in FLYS hat keine Beschreibung. Diese wird
316 allerdings zum Abgleich mit DIPS/AFT benötigt.

http://dive4elements.wald.intevation.org