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

 

Programmaufruf und Ablauf

Übersicht

Der HitBatch-Client arbeitet ähnlich einem Filetransfer- oder Datenbank-Load/Unload-Programm.

Der Client benötigt ein aktuelles Java (ab Version 8). Dies kann eine der OpenJDK-Varianten (Eclipse Adoptium, Azul Zulu, Amazon Corretto etc) oder eine der nicht frei verfügbaren Varianten (Oracle, IBM) sein. Die Standardinstallation einer JRE genügt für den Betrieb.

Aufrufsyntax

Ab Version 60:

java -jar hitbatch-complete.jar <Ini-Datei-Pfadangabe> [Set/Schlüssel=Wert ...]

(ggf. bei der JAR-Datei dessen Pfad mit angeben)

Seit HitBatch v62:
Der HitServer und somit auch der HitBatch sind um weitere Verschlüsselungsalgorithmen erweitert worden, die verwendet werden können (nicht müssen!), wenn die Crypto-Bibliothek Bouncy Castle ab Version 1.76 beim Aufruf mit eingebunden wird. Dort ist unter "latest release" die Datei vom Typ Provider "bcprov-jdk18on-176.jar" (oder spätere Versionsnummer 177 etc) herunterzuladen.

Der Aufruf ist dann (Java 8 oder höher):

java -cp bcprov-jdk18on-176.jar -jar hitbatch-complete.jar <Ini-Datei-Pfadangabe> [Set/Schlüssel=Wert ...]

Ohne die Bibliothek können nicht alle Angaben bei ENC_SYM verwendet werden!

Seit HitBatch v48:
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 (Beispiel und zur Reihenfolge/zum Vorrang der Wert-Ermittlung siehe hier).

 

Bis Version 58 (nur zur Dokumentation, da keine Downloads mehr dafür verfügbar):

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

Damit wird 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). Der Parameter -jar wirkt hier nicht, da das integrierte Manifest keinen Eintrag Main-Class besitzt.

 

!! Wichtiger Hinweis !!

Aus gegebenen Anlässen weisen wir ausdrücklich auf folgendes hin:

1.

Es genügt nicht, dass Programme von Softwareanbietern, die den HitBatch-Client zur Datenübertragung benutzen, nur die Eingabedateien bereitstellen und den Batch-Client aufrufen, sondern:
bulletdie Programme müssen unbedingt die Ergebnisse und Fehlermeldungen in den Protokolldateien auswerten,
bulletfehlerhafte Sätze korrigieren lassen und neu senden
bulletund aus Systemgründen nicht angenommene Sätze auch erneut übertragen.

Details unter HitBatch-Logfiles und auch unter  "Wichtige Hinweise an Produzenten von Software für HI-Tier Meldeprogramme"

2.

Durch die verschärften Plausiprüfungen in der Datenbank bezüglich Ohrmarkennummern können keine Meldungen zu Tieren abgesetzt werden, ohne dass für diese keine Entstehungsmeldung (also Ersterfassung, Geburt, EU-Einfuhr oder Importmarkierung) vorliegen. Sie erhalten dann die Fehlermeldung #701 "Diese Ohrmarkennummer existiert nicht in der Datenbank" mit der Schwere 2, was bedeutet, dass diese Meldung zu korrigieren oder mit FORCE erneut zu melden ist.

Dieses Problem betrifft hauptsächlich Schlachtbetriebe, die Tiere ohne Entstehung zugehen und schlachten lassen wollen.
Es gibt hierzu zwei Lösungsvorschläge (unter Anwendung des HitBatch-Clients):

bulletBetriebe, die unbedingt wissen wollen, ob Tiere ohne Entstehungsmeldung zugehen, senden die Zugangsmeldungen normal mit IS bzw. IB. Die dann dabei mit oben genanntem Fehler zurückgegebenen Meldungen können dann mitprotokolliert und erneut mit IS/S bzw. IB/S gesendet werden. Dies setzt jedoch einen gewissen Verwaltungsaufwand seitens des Betriebes voraus.
bulletBetriebe, die solche Tiere unabhängig von deren Entstehung dennoch sofort speichern wollen, können diese im HitBatch gleich mit IS/S bzw. IB/S melden.

Hinweis: Der HitBatch-Client kann jedoch nicht mit der Einstellung VERHALTENBEINACHFRAGE=1 bzw. =2 verwendet werden, wenn die Meldungen im Block-Modus (=IB) gesendet werden. Es sollte dann IB/S verwendet oder auf IS umgestellt werden.

 

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 -jar hitbatch-complete.jar <Ini-Datei-Pfadangabe> [Set/Schlüssel=Wert ...]

 

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

 

Zurück zum Anfang