Zur Homepage www.HI-Tier.de Aufruf und Ablauf
Zurück Home Nach oben Weiter
Öffentlicher Bereich für Entwickler

 

Hinweise zum Programmaufruf und Ablauf

Übersicht

Der HIT-Batch-Client arbeitet ähnlich einem Filetransfer oder Datenbank-Load/Unload-Utility.

Aufrufsyntax

java -classpath "HitUpros.jar;HitBatch.jar" HitBatch.HitBatchMain <Ini-Datei-Pfadangabe> [Set/Schlüssel=Wert ...]

(siehe HitBatch.cmd im HitBatch-Archiv)

Damit das Programm HitBatch.HitBatchMain funktioniert, muss Java mitgeteilt werden, wo es die dafür benötigten Pakete findet. Diese werden als Javaparameter -classpath "HitUpros.jar;HitBatch.jar" mitgegeben (ggf. die Pfade mit angeben)

Neu ab HitBatch v48 (15.10.2015):
Hinter der Ini-Datei-Pfadangabe können 0 bis n Schlüssel-Wert-Paare angegeben werden. Diese überschreiben Ini-Parameter temporär oder werden als neue Abschnitt-Schlüssel-Wert-Paare angelegt. Die Ini-Datei selbst bleibt dabei immer unverändert, d.h. die so überschriebenen Daten werden am Ende des HitBatch nicht in die Datei zurückgeschrieben.
Einen Sonderfall bildet der Abschnitt Var: dieser kann als einfacher Variablenspeicher verwendet werden, dessen Werte via Makro %ENV:<Schlüssel>% angewandt werden können (zur Reihenfolge/zum Vorrang der Wert-Ermittlung siehe hier).

WICHTIG: Der Aufruf java HitBatch HitBatch.ini ist falsch und schon seit längerem ungültig! Sollte dies funktionieren, dann unbedingt alle alten HitBatch-Versionen löschen!

Fehlermeldung java.lang.OutOfMemoryError: Java heap space

Bis einschließlich Java-Version 5: Ab Version 42 des HitBatch können OutOfMemory-Fehler auftreten, da die kritische Grenze des sogenannten Heap Space von 64MB erreicht wird. Durch einen zusätzlichen Javaparameter -Xmx128M (für z.B. 128 MB) kann Java mitgeteilt werden, daß die Java-Laufzeitumgebung mehr Speicher reservieren darf.

Ab Version 6 des Java-Systems dürfte das Problem nicht auftreten, da diese nicht mehr die 64MB-Grenze verwenden, sondern den kleineren der beiden Werte: 1/4 des physikalischen Arbeitsspeichers oder 1GB.

Die zusätzliche Option -Xmx ist in allen Java-Versionen möglich und kann ohne Geschwindigkeitseinbußen präventiv immer verwendet werden.

Zeichensatz

Der HIT-Server arbeitet von Haus aus mit dem Zeichensatz ISO-8859-1 (auch Latin1 genannt). Damit Umlaute oder Sonderzeichen korrekt aus Datendateien gelesen und an die Datenbank übertragen werden, müssen daher alle Clients ebenso mit diesem Zeichensatz arbeiten. 

Sowohl deutsch- als auch englischsprachige Windows-Versionen arbeiten korrekt, da der windowseigene Zeichensatz vom obigen Zeichensatz größtenteils abgeleitet ist.

Linux-Anwender (ebenso AIX, BSD, etc.) jedoch müssen in den meisten Fällen dem Client explizit mitteilen, mit welchem Zeichensatz gearbeitet werden soll, da die meisten inzwischen mit UTF-8 arbeiten, das ab dem 127sten Zeichen nicht mehr mit Latin1 deckungsgleich ist und zudem Zeichen mit mehr als einem Byte "versteht". Der Aufruf entspricht dann dem obigen, der rot markierte Teil ist zu ergänzen:

java -Dfile.encoding=ISO-8859-1 <javaparameter> HitBatch.HitBatchMain <pfad zur INI-Datei>

 

Programm-Aufrufbeispiel

Windows 

@ECHO OFF
:AGAIN
java HitBatch.HitBatchMain HitBatch.ini
IF ERRORLEVEL 4 GOTO AGAIN
IF ERRORLEVEL 1 GOTO ERROR
GOTO FERTIG
:ERROR
ECHO Transfer der Daten nicht erfolgreich
PAUSE
:FERTIG

Der HitBatch liefert verschiedene Fehlerschweren, auf die reagiert werden kann:

0 = Verarbeitung OK, Details siehe Ergebnis-Dateien
1 = Impressum ausgegeben, keine weitere Verarbeitung
2 = Ini.-Parameter-Fehler, keine weitere Verarbeitung
3 = Datei-Lesefehler, Verarbeitung wegen Problemen abgebrochen
4 = Fehler bei Verbindung zum HIT-Server, Verarbeitung abgebrochen
5 = System-Fehler, Fehlertext bitte an Entwicklung melden

Die Schwere 4 zeigt meist ein Verbindungsproblem auf, so daß Scripten den Batch-Job erneut starten können, wie im Beispiel oben (am besten mit einer sinnvollen zeitlichen Verzögerung). Der HitBatch merkt sich die zuletzt verarbeitete Position und setzt dort erneut auf.

Beispiel-Parameter

Allgemein

siehe HitBatch.ini

Interner Programm-Ablauf

  1. Lesen der Parameter aus INI-Datei
  2. Socket-Verbindung auf angegebenem Port zu Hit-Server oder Backup-Server über IP-Adresse oder DNS-Namen öffnen
  3. Auf Antwort "=0:0/xxxx::HitServer bereit Version xxxx" warten und benötigte Version prüfen
  4. ggf. Backupserver verbinden wenn Primary nicht antwortet oder mit Schwere >= 2 signalisiert, dass nicht bereit
  5. Input-Datei öffnen, wenn in Offset-Datei oder Parameter zu überspringende Zeilenzahl gegeben dann überspringe jetzt
  6. Alle weiteren Zeilen als Meldung an den Hit-Server senden
  7. Der Server prüft die Meldungen und gibt Return-Codes der Schwere 0=OK, 1=Hinweis, 2=Nachfrage, 3=Fehler, 4=Panik zurück.
  8. Bei Schwere <= 1 wurde der Satz am Server gespeichert, der HitBatch-Client schreibt diesen Satz in die Ausgabedatei "GOOD" (sofern angegeben).
  9. Bei Schwere > 1 wurde der Satz am Server nicht gespeichert, der HitBatch-Client schreibt diesen Satz in die Ausgabedatei "BAD" (sofern angegeben).
  10. Alle Sätze mit Schwere >= 1 (bzw. im Parameter -s angegebener Wert) werden zusätzlich in die LOG-Datei geschrieben, gefolgt von den entsprechenden Hinweisen und Fehlermeldungen (Auf dieser Antworten siehe HIT-Protokoll)
  11. Wenn die ganze Input-Datei bis zum Ende bearbeitet wurde, wird die Offset-Datei gelöscht
  12. Wenn die Bearbeitung vor Ende der Input-Datei abgebrochen wurde, wird die Anzahl der bereits bearbeiteten Sätze in die Offset-Datei geschrieben. Ein weiterer Lauf kann dann genau am Abbruch-Punkt wieder aufsetzen. Dass ein weiterer Durchlauf erforderlich ist, kann am Return-Code 4 (Verbindungsabbruch) erkannt werden.
 

Zurück zum Anfang


© 1999-2015 Bay.StMELF, verantwortlich für die Durchführung sind die Stellen der Länder , fachliche Leitung ZDB: Frau Dr. Kaja.Kokott@hi-tier.de, Technik: Helmut.Hartmann@hi-tier.de
Seite zuletzt bearbeitet: 01. Februar 2016 18:49, Anbieterinformation siehe hier im Impressum.