Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS...

32
Isaac-Newton-Straße 11 August-Bebel-Straße 72 23562 Lübeck 14482 Potsdam Tel: +49 451 702 80-0 Tel: +49 451 702 80-20 Fax: +49 451 702 80-40 Fax: +49 331 550 39-22 Releasenotes BALVI Schnittstellenserver (Version 3.0 vom 23.09.2016) Inhaltsverzeichnis 1 Allgemeine Änderungen ................................................................................... 2 1.1 Neuerungen in Version 3.0................................................................................ 2 1.2 WICHTIGE Hinweise zum Update von älteren Versionen (vor 2.8.x) ................................ 4 1.3 Nacharbeiten nach dem Update auf Version 2.8 (ADMIN**) .......................................... 4 1.4 Neuerungen in Version 2.8................................................................................ 5 1.4.1 Jeder Schnittstellen-Server benötigt eine Kennung „serverID“ ..................................... 5 1.4.2 Optional ist nun eine Namensvergabe möglich ........................................................ 5 2 Administrator-Einstellungen .............................................................................. 7 2.1 Allgemeine Hinweise zum Betrieb ....................................................................... 7 2.1.1 Tomcat- und Java-Kompatibilität ....................................................................... 7 2.1.2 Nutzung von Java-Proxyeinstellungen .................................................................. 7 2.1.3 Spracheinstellung Deutsch ................................................................................ 8 2.1.4 Datenbankverbindung ..................................................................................... 8 2.1.5 Probleme beim Anlegen von LOB-Objekten ............................................................ 8 2.1.6 Umbenennung der gelieferten WAR-Datei .............................................................. 9 2.1.7 Server-Schnittstellen ...................................................................................... 9 2.2 Kompatibilitätsliste ...................................................................................... 10 2.3 Erforderliche Bibliotheken für Tomcat ............................................................... 11 2.4 Datenbank-Installation .................................................................................. 11 2.4.1 Erstinstallation: Datenbank-User anlegen ............................................................ 12 2.4.2 Rechte zuweisen ......................................................................................... 12 2.4.3 Wann ist die Ausführung des Grant-Skripts erforderlich? .......................................... 13 2.4.4 Welche Version des Grant-Skripts soll ich nehmen?................................................. 14 2.4.5 Kombination von mehreren Verfahren ................................................................ 14 2.5 Konfiguration des Schnittstellen-Servers ............................................................. 15 2.5.1 Die „context.xml“-Parameter.......................................................................... 15 2.6 Logging mit logback ..................................................................................... 26 2.7 Tocmat Optional: Suche im „Klassenpfad“ um den Ordner „conf“ erweitern .................. 26 3 Die neue Browser-Oberfläche .......................................................................... 27 3.1 Server-Protokoll .......................................................................................... 27 3.2 Jobs ........................................................................................................ 28 3.3 Log-Ausgaben ............................................................................................. 28 3.4 Logout/Abmeldung vom System ....................................................................... 29 3.5 Cache löschen ............................................................................................ 30 4 Einrichtung in BALVI iP .................................................................................. 31

Transcript of Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS...

Page 1: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

Isaac-Newton-Straszlige 11

August-Bebel-Straszlige 72

23562 Luumlbeck

14482 Potsdam

Tel +49 451 702 80-0

Tel +49 451 702 80-20

Fax +49 451 702 80-40

Fax +49 331 550 39-22

Releasenotes BALVI Schnittstellenserver (Version 30 vom 23092016)

Inhaltsverzeichnis

1 Allgemeine Aumlnderungen 2 11 Neuerungen in Version 30 2 12 WICHTIGE Hinweise zum Update von aumllteren Versionen (vor 28x) 4 13 Nacharbeiten nach dem Update auf Version 28 (ADMIN) 4 14 Neuerungen in Version 28 5 141 Jeder Schnittstellen-Server benoumltigt eine Kennung bdquoserverIDldquo 5 142 Optional ist nun eine Namensvergabe moumlglich 5 2 Administrator-Einstellungen 7 21 Allgemeine Hinweise zum Betrieb 7 211 Tomcat- und Java-Kompatibilitaumlt 7 212 Nutzung von Java-Proxyeinstellungen 7 213 Spracheinstellung Deutsch 8 214 Datenbankverbindung 8 215 Probleme beim Anlegen von LOB-Objekten 8 216 Umbenennung der gelieferten WAR-Datei 9 217 Server-Schnittstellen 9 22 Kompatibilitaumltsliste 10 23 Erforderliche Bibliotheken fuumlr Tomcat 11 24 Datenbank-Installation 11 241 Erstinstallation Datenbank-User anlegen 12 242 Rechte zuweisen 12 243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich 13 244 Welche Version des Grant-Skripts soll ich nehmen 14 245 Kombination von mehreren Verfahren 14 25 Konfiguration des Schnittstellen-Servers 15 251 Die bdquocontextxmlldquo-Parameter 15 26 Logging mit logback 26 27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner bdquoconfldquo erweitern 26 3 Die neue Browser-Oberflaumlche 27 31 Server-Protokoll 27 32 Jobs 28 33 Log-Ausgaben 28 34 LogoutAbmeldung vom System 29 35 Cache loumlschen 30 4 Einrichtung in BALVI iP 31

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

232

1 Allgemeine Aumlnderungen

Der neue BALVI Schnittstellen-Server (BSS) 30 ersetzt alle ausgelieferten Versionen

Der BSS ist ausschlieszliglich ein Zusatz-Server welcher an eine vorhandene BALVI iP

Datenbank angebunden werden kann um neue automatisierte webbasierte Schnittstellen

zur Verfuumlgung zu stellen

Zu diesen Schnittstellen gehoumlren bislang

BALVI mobil XT ab Version 15

Daten-Export an eFi (BVL nur fuumlr ausgewaumlhlte Test-Bundeslaumlnder)

Bidirektionale Datenaustausch-Schnittstelle zum LIMS

xDomea-konforme DMS-Web-Schnittstelle

Betriebsregister-Schnittstelle zum Abgleich von Betriebsstammdaten

TSK-Meldebogen-Schnittstelle (Sachsen)

Import-Schnittstelle xGewerbeanzeigen des BMWi gem Spez 11

RioPP LM ndash Uumlbernahme der Probenplaumlne (NRW)

Die meisten Schnittstellen koumlnnen durch BALVI dynamisch aktualisiert und erweitert

werden ohne dass dabei der Betrieb von BALVI iP beeinflusst wird In einzelnen Faumlllen ist es

jedoch erforderlich den BSS nach der Aktualisierung bzw Bereitstellung einer neuen

Schnittstelle neu zu starten

Da der BSS bislang als Erweiterung fuumlr BALVI iP konzipiert ist gibt es zusaumltzlich mehrere

BALVI iP Patches welche in die BALVI iP Datenbank eingespielt werden muumlssen um die

diversen Schnittstellen zu aktivieren bzw zu aktualisieren

Das Update des WAR auf die neue Version 30x hat folgende Grundvoraussetzungen

- BALVI iP 1240 (oder houmlher)

- Java 8

- Tomcat 8 (min 8030 oder neuer)

Sollten Sie noch eine aumlltere Version von BALVI iP einsetzen und koumlnnen aus

organisatorischen Gruumlnden nicht auf 1240 oder houmlher aktualisieren kontaktieren Sie bitte

den Support

11 Neuerungen in Version 30

Achtung Der BSS 30 setzt Java 8 voraus Java 7 ist nicht mehr nutzbar

Der BSS 30 beinhaltet alle Funktionalitaumlten des BSS 28 Zusaumltzlich ist es jetzt moumlglich ETL-

Transformation zu verarbeiten die mit der die ETL-Pentaho Engine durch BALVI entwickelt

wurden Damit wird der BSS auf das zukuumlnftige BALVI iP2 vorbereitet In diesem Zuge

wurden diverse Funktionalitaumlten aktualisiert

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

332

Daher muumlssen folgende Anpassungen an der contextxml vorgenommen werden bevor die

Version 30 gestartet werden darf

1) Neuer Parameter isJobServiceEnabled

Der Parameter availableServices wurde durch isJobServiceEnabled ersetzt (siehe

Kapitel 2516) Damit ist der Jobservice standardmaumlssig aktiv Suchen sie

availableServices und entfernen sie diesen

2) Neue Logging-Konfiguration

Zu BSS 30 wurde auf eine neue Logging-Klasse umgestellt (siehe Kapitel 26) Dafuumlr

muss die vorhandene log4j-commserverxml durch die logback-bssxml im Ordner

conf ausgetauscht werden damit der neue APPENDER genutzt werden kann

Entfernen sie log4jConfigLocation und fuumlgen loggingconf hinzu

In der Contextxml muss beim neuen Parameter loggingconf der Pfad zur

logback-bssxml eingetragen werden

3) DataSource-Factory

Ist die Factory noch auf orgapachecommonsdbcpBasicDataSourceFactory

eingestellt aumlndern sie diesen auf orgapachetomcatjdbcpoolDataSourceFactory

commonsdhcp wird nicht mehr von Java 8 unterstuumltzt (siehe Kapitel 2511)

Optional Neue Datenquellen ergaumlnzen

Die erste Schnittstelle welche die neue Funktionalitaumlt benoumltigt ist die Datenuumlbergabe von

Probenplaumlnen aus dem Modul bdquoRioPP LM (NRW)ldquo an BALVI iP1 Da der BSS zukuumlnftig mehrere

Module verbinden wird werden ggf mehrere DataSources benoumltigt je Fachmodul wird

dann eine DataSource durch BALVI benannt

Um ETL-Engine (Kettle) mitzuteilen welche DataSource das auszufuumlhrende Modul benoumltigt

sind folgende Umgebungseinstellungen in die ContextXML einzufuumlgen

Beispiel

ltResource

name=jdbckettleiP1DataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10

maxIdle=5

ltResourcegt

Da Kettle fuumlr die Ausfuumlhrung verschieden Ausfuumlhrungsdateien benoumltigt fuumlgt man zwingend

den Parameter kettlePluginDirectory ein Bei dem Wert value legt man das Verzeichnis fest

wo die entsprechenden Dateien gefunden werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

432

ltEnvironment

name=kettlePluginDirectory

value=hometest_ip2_bsskettleplugins

type=javalangString

override=true

gt

12 WICHTIGE Hinweise zum Update von aumllteren Versionen

(vor 28x)

Bei der Version 280 handelt es sich um ein Feature-Update welches fuumlr mehr Stabilitaumlt

bei der Verwendung von zeitgesteuerten Jobs sorgt

Dabei ist es erforderlich

a) Das beiliegende IP-Patch auszufuumlhren bevor das WAR ausgetauscht wird

Ansonsten wird der folgende Fehler bei der Job-Bearbeitung auftreten

ORA-00904 bdquoSERVER_IDldquo unguumlltiger Bezeichner

b) die vorhandene contextxml zu erweitern und den neuen Environment-Parameter

bdquoserverIDldquo zu ergaumlnzen

c) Die vorhandenen Jobs durch den ADMIN wieder zu aktivieren

Erlaumluterungen zu diesem Parameter finden Sie unter den bdquoNeuerungen in Version 28ldquo

13 Nacharbeiten nach dem Update auf Version 28 (ADMIN)

Sofern Sie schon aktive bdquoJobsldquo im BSS in Verwendung haben werden diese mit dem Update

automatisch deaktiviert da die Jobs nun an den ausfuumlhrenden Server gebunden werden

muumlssen Dieses bdquobindenldquo geschieht indem Sie den Job in der Detailansicht oumlffnen und dort

den Haken hinter bdquoJob an Server bindenldquo setzen und speichern

Danach wird der Job wieder aktiv in der Uumlbersicht angezeigt Diesen Konfigurationsschritt

muumlssen Sie nun jedes Mal durchfuumlhren nachdem die Datenbank von Produktion auf Test

geklont wurde

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

532

14 Neuerungen in Version 28

141 Jeder Schnittstellen-Server benoumltigt eine Kennung bdquoserverIDldquo

Viele Kunden nutzen den Schnittstellenserver mehrfach in Ihrer Umgebung da mehrere

BALVI iP Installationen (zB Produktion und Test) in der Infrastruktur existieren

Da die Schnittstellenkonfiguration fuumlr den BSS in der Datenbank abgelegt wird kam es in

manchen Faumlllen vor dass nach einem Klon der Produktionsdatenbank auf ein Testsystem die

im BSS angelegten Jobs sofort nach dem Start in der Testumgebung wieder angesprungen

sind Um dieses Problem zu beseitigen muss jeder BSS ab Version 28 eine eindeutige

bdquoserverIDldquo zugewiesen bekommen Diese Server-ID wird in daher in der bdquocontextxmlldquo

hinterlegt um neutral zur Datenbank zu sein

Ist keine Environment-Variable bdquoserverIDldquo vorhanden so wird der Start des BSS 28 (oder

houmlher) sofort mit einer Fehlermeldung abgebrochen Im Server-Protokoll wird dabei der

Fehler bdquoERROR [IdentityServiceImpl] serverID must not be emptyrdquo ausgegeben Danach

kommt sofort die Meldung dass der BSS wieder heruntergefahren wird

INFO [localhost-startStop-1] [ContextCreationListener]

BALVI-Schnittstellen-Server

Version 280

hellip

ERROR [localhost-startStop-1] [IdentityServiceImpl] serverID must not be empty

ERROR [localhost-startStop-1] [ContextLoader] Context initialization failed

Um eine ldquoserverIDrdquo zu vergeben fuumlgen Sie in der contextxml folgende Angabe ein

lt--

ID fuumlr den Server

Diese muss pro Schnittstellenserver eindeutig sein

Eine Aumlnderung dieser ID fuumlhrt sofort dazu dass alle

Eingerichteten Server-Jobrsquos inaktiv werden und neu mit

Der Instanz gekoppelt werden muumlssen um wieder aktiviert

werden zu koumlnnen

Als value kann ein Text der max Laumlnge von 32 Zeichen

vergeben werden zB ProductionEnvNode1 fuumlr die Produktion

und TestEnvNode1 fuumlr die Testumgebung

--gt

ltEnvironment

name=serverID

value=ProductionEnvNode1

type=javalangString

override=true

gt

142 Optional ist nun eine Namensvergabe moumlglich

Auf Wunsch mehrerer Kunden wurde die Option geschaffen jedem Server zusaumltzlich einen

kundenspezifischen bdquoTitelldquo zu geben um die Server besser unterscheiden zu koumlnnen

lt--

Visueller Name des Servers in der Oberflaumlche

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

632

(Optional)

--gt

ltEnvironment

name=serverName

value=Testumgebung Tomcat 8 mit Test-DB

type=javalangString

override=true

gt

Der hier angegebene Text wird in der Kopfzeile mit ausgegeben

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

732

2 Administrator-Einstellungen

21 Allgemeine Hinweise zum Betrieb

211 Tomcat- und Java-Kompatibilitaumlt

Der BALVI Schnittstellenserver wurde getestet und freigegeben fuumlr Apache Tomcat 8 (ab

Version 8030 oder neuer) Zudem sind die aktuellste (letzte offizielle) Java 8 (ab Java SE

8u40) getestet worden und koumlnnen verwendet werden

Es wird dringend empfohlen bei Java immer die Version mit den aktuellen

Sicherheitsupdates zu verwenden Beachten Sie dabei jedoch dass nicht die Aktualisierung

auf eine andere Java-Version (zB Java 9) gemeint ist

Freigegebene Major-Versionen werden explizit von BALVI benannt Falls Sie vor haben die

Major-Version zu aumlndern pruumlfen Sie bitte die aktuellen Release-Notes oder kontaktieren die

BALVI Kundenbetreuung

212 Nutzung von Java-Proxyeinstellungen

Der BALVI Schnittstellenserver verwendet fuumlr ausgehende Verbindungen die Java-Net

Einstellungen welche in der Java-Dokumentation1 beschrieben sind Falls sie Jobs

einsetzen welche ausgehenden Zugriff auf Adressen im Internet benoumltigen kann es

passieren dass sie zB eine bdquojavanetUnknownHostExceptionldquo im Protokoll finden dann

muumlssen sie ihre Proxy-Umgebung in den Java-Umgebungseinstellungen ergaumlnzen

Die folgenden Parameter sollte daher in ihrer Umgebung gesetzt werden wenn der Zugriff

auf das Internet nur uumlber einen Proxy moumlglich ist

-DproxySet=true

-DproxyHost=10111213

-DproxyPort=8888

-DhttpnonProxyHosts=domainorg|localhost|10

Bitte beachten sie dass der Server nach einer Aumlnderung neu gestartet werden

muss damit die Einstellungen wirksam werden

2121 Proxy-Einstellung unter Windows (Tomcat-Dienst)

Verwenden Sie bitte das Dienste-Konfigurationsprogramm (zB tomcat7wexe) und

ergaumlnzen Sie die fehlenden Einstellungen

1 httpdocsoraclecomjavase8docstechnotesguidesnetpropertieshtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

832

2122 Proxy-Einstellung unter Linux

In Linux wird in der Konfigurationsdatei (zB conftomcat7conf) die Variable

bdquo$JAVA_OPTSldquo entsprechend erweitert und die Werte uumlbergeben Beachten Sie dabei

bitte dass die Variablen von Linux (bzw der Bash) gelesen werden Daher muss das bdquoPipeldquo-

Zeichen bdquo|ldquo mit bdquoldquo maskiert werden ansonsten erhalten Sie ggf bei der Verarbeitung der

Umgebungsvariable bdquohttpnonProxyHostsldquo Fehlermeldungen in der Linux-Konsole welche

dazu fuumlhren dass das Java nicht korrekt konfiguriert werden kann

JAVA_OPTS=$JAVA_OPTS -DproxySet=true -DproxyHost=10111213 -DproxyPort=8888

JAVA_OPTS=$JAVA_OPTS -DhttpnonProxyHosts=domainorg|localhost|10

213 Spracheinstellung Deutsch

Es wurde festgestellt dass unter einigen Linux-Versionen die Spracheinstellung beim

Starten des Apache Tomcat nicht auf eine deutsche Umgebung verweist Dieses kann

technische Probleme verursachen Unter Linux sollte die Einstellung (Umgebungsvariable)

entsprechend auf LANG=de_DEUTF-8 eingestellt sein

214 Datenbankverbindung

Wenn Sie eine Firewall zwischen dem Oracle-Server und dem Database Connection Pool

(DBCP) verwenden sollte unbedingt die bdquovalidationQueryldquo in der DBCP-Konfiguration

aktiviert werden damit die Anwendung schneller freie Connections aus dem Pool erhalten

kann Die Dokumentation zu den Einstellmoumlglichkeiten ist in der beiliegenden Contextxml

ergaumlnzt worden

Bitte beachten Sie dass dringende empfohlen wird die bdquoFactoryldquo auf

orgapachetomcatjdbcpoolDataSourceFactory anzupassen falls sie noch auf

bdquoorgapachecommonsdbcpBasicDataSourceFactoryldquo eingestellt ist

215 Probleme beim Anlegen von LOB-Objekten

Der BALVI Schnittstellen-Server erfordert die JDBC-Spezifikation DBCP V4 welche durch die

Factory bdquoorgapachetomcatjdbcldquo ab Tomcat 7 automatisch bereitgestellt wird

Wenn die Pooling-Komponente oder der Oracle-Treiber nicht JDBC4-Kompatibel sind gibt es

beim bearbeiten von LOB-Objekten in Java diverse Exceptions zB

Servletservice() for servlet soapws threw exception

javalangAbstractMethodError

orgapachecommonsdbcpPoolingDataSource$PoolGuardConnectionWrappercreateClob()Ljava

sqlClob

at debalvicoreauditspyConnectionSpycreateClob(ConnectionSpyjava511)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

932

Ursache dieses Problem ist meistens dass noch nicht auf bdquoorgapachetomcatjdbcldquo

umgestellt wurde

216 Umbenennung der gelieferten WAR-Datei

Das im Paket von BALVI gelieferte WAR kann jederzeit umbenannt werden (zB als

ROOTwar) ohne dass dabei spezielle Einstellungen in der bdquocontextxmlldquo erforderlich sind

Beachten Sie dabei jedoch dass die zum WAR zugehoumlrige contextxml im Apache Tomcat

immer denselben Namen erhaumllt wie das WAR zB commserverwar und commserverxml

Der Name ist dabei Ausschlaggebend fuumlr die Zugriffs-Adresse (Context) im Apache Tomcat

selbst Die Benennung des WAR in bdquocommserverwarldquo wuumlrde folgendermaszligen aufzurufen

sein httpserverportcommserver

217 Server-Schnittstellen

Die Uumlberarbeitung bzw Erweiterung der Export- und Importschnittstellen welche uumlber den

Schnittstellenserver bereitgestellt werden ist unabhaumlngig vom Schnittstellenserver selbst

Die Schnittstellen sind daher nicht Bestandteile des Schnittstellenserver und werden je

Verfahren separat ausgeliefert Ggf ist es fuumlr unterschiedliche Schnittstellen erforderlich

die Grant-Rechte zu aktualisieren (Vgl bdquoWann ist die Ausfuumlhrung des Grant-Skripts

erforderlichldquo)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1032

22 Kompatibilitaumltsliste

Diverse Verfahren setzen eine Mindestversion des Schnittstellen-Servers voraus Die

Schnittstellen sind jedoch so konzipiert dass eine Aktualisierung auf eine houmlhere Version

des Servers ohne Anpassung an den vorhandenen Schnittstellen jederzeit moumlglich ist

Derzeit sind folgende Mindestanforderungen gegeben

1 Mobil XT 170 oder houmlher setzt Server 265 und BALVI iP 124x voraus

2 Mobil XT 183 oder houmlher setzt Server 281 und BALVI iP 124x voraus

3 Die Schnittstelle eFI setzt Server 251 und BALVI iP 122c voraus

4 Die Schnittstelle LIMS setzt Server 265 voraus

5 Die Schnittstelle TSK (SN) setzt Server 265 voraus

6 Die Schnittstelle xDomea (SN) setzt Server 265 und Java 7 voraus

7 Die Schnittstelle xGewerbeanzeigen setzt Server 281 BALVI iP 124x Java 8 mit

der bdquoJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy2ldquo und

das Grant Skript 158 oder houmlher voraus

8 Die Schnittstelle RioPP LM (NRW) setzt zwingen Server 30x und die ETL-

Konfiguration voraus

2 httpwwworaclecomtechnetworkjavajavasedownloadsjce8-download-2133166html

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1132

23 Erforderliche Bibliotheken fuumlr Tomcat

Dateiname Funktion Quelle

ojdbc6jar Oracle 11gR2 Clientpaket Oracle JDBC Client fuumlr Java 16 ersetzt die bisherige Version bdquoojdbc14jarldquo Die alte Library muss auf jeden Fall entfernt werden

httpwwworaclecomtechnetworkdatabaseenterprise-editionjdbc-112010-090769html

encrypted-datasource-110-alljar

Die Library muss auf jeden Fall entfernt werden Wird derzeit nicht weiter gepflegt da kein Interesse an der Funktionalitaumlt bestand

slf4j-api-1511jar

slf4j-log4j12-1511jar

log4jdbc4-12beta2jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

commons-dbcp-14jar

commons-pool-154jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

Erwartet wird stattdessen ab Tomcat7 die mitgelieferte bdquotomcat-jdbcjarldquo

log4j-1216jar (oder houmlher)

Logging-Funktionalitaumlt Apache Log4j httploggingapacheorglog4j12downloadhtml

bcprov-jdk15on-153jar (oder houmlher)

BouncyCastle Security Provider fuumlr SSLAES hellip wird ab Version 27 im Ordner bdquolibldquo des Tomcat erwartet Sollte es aus Sicherheitsgruumlnden erwuumlnscht sein eine aktuellere Version einzusetzen ist dieses idR moumlglich

httpmvnrepositorycomartifactorgbouncycastlebcprov-jdk15on153

24 Datenbank-Installation

Der Schnittstellen-Server benoumltigt auszligerhalb des angebundenen BALVI iP keine eigenen

Tabellen Die Web-Anwendung kann im einfachsten Fall direkt auf das Schema von BALVI iP

zugreifen indem der User und das Passwort des BALVI iP-Schemas in der Contextxml

eingetragen werden (nicht empfohlen)

Sollte dieses aus Sicherheitsgruumlnden nicht erwuumlnscht sein (empfohlen vom BSI und BALVI)

finden Sie im Paket ein GRANT-Skript um Zugriffsrechte vom BALVI iP Schema fuumlr den

Webservice-Schema-User einzurichten

Zwischen dem Schema von BALVI iP und jeder Web-Anwendung ist dann eine Trennung

moumlglich um sicherzustellen dass der Datenbank-Benutzer welcher in der Tomcat-

Konfiguration fuumlr die Web-Anwendung eingetragen wird geaumlndert oder geloumlscht werden

kann ohne dass die Windows-Anwendung BALVI iP davon betroffen ist Zudem vergibt das

von BALVI gelieferte Grant-Skript keine Rechte zum Loumlschen von Tabellenstrukturen oder

Tabelleninhalten so dass der Webservice nur festgelegte Daten aumlndern oder lesen darf Es

wird empfohlen je Web-Anwendung einen eigenen Datenbank-Benutzer zu vergeben wenn

sie ein BALVI iP mit mehreren Webservices verbinden wollen

Die Moumlglichkeiten im Uumlberblick

1) Sie betreiben den Webservice mit einem eigenstaumlndigen Oracle-Benutzer In diesem

Fall muss das Grant-Skript ausgefuumlhrt werden um den Webservice-Benutzer und

BALVI iP-Benutzer zu koppeln

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 2: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

232

1 Allgemeine Aumlnderungen

Der neue BALVI Schnittstellen-Server (BSS) 30 ersetzt alle ausgelieferten Versionen

Der BSS ist ausschlieszliglich ein Zusatz-Server welcher an eine vorhandene BALVI iP

Datenbank angebunden werden kann um neue automatisierte webbasierte Schnittstellen

zur Verfuumlgung zu stellen

Zu diesen Schnittstellen gehoumlren bislang

BALVI mobil XT ab Version 15

Daten-Export an eFi (BVL nur fuumlr ausgewaumlhlte Test-Bundeslaumlnder)

Bidirektionale Datenaustausch-Schnittstelle zum LIMS

xDomea-konforme DMS-Web-Schnittstelle

Betriebsregister-Schnittstelle zum Abgleich von Betriebsstammdaten

TSK-Meldebogen-Schnittstelle (Sachsen)

Import-Schnittstelle xGewerbeanzeigen des BMWi gem Spez 11

RioPP LM ndash Uumlbernahme der Probenplaumlne (NRW)

Die meisten Schnittstellen koumlnnen durch BALVI dynamisch aktualisiert und erweitert

werden ohne dass dabei der Betrieb von BALVI iP beeinflusst wird In einzelnen Faumlllen ist es

jedoch erforderlich den BSS nach der Aktualisierung bzw Bereitstellung einer neuen

Schnittstelle neu zu starten

Da der BSS bislang als Erweiterung fuumlr BALVI iP konzipiert ist gibt es zusaumltzlich mehrere

BALVI iP Patches welche in die BALVI iP Datenbank eingespielt werden muumlssen um die

diversen Schnittstellen zu aktivieren bzw zu aktualisieren

Das Update des WAR auf die neue Version 30x hat folgende Grundvoraussetzungen

- BALVI iP 1240 (oder houmlher)

- Java 8

- Tomcat 8 (min 8030 oder neuer)

Sollten Sie noch eine aumlltere Version von BALVI iP einsetzen und koumlnnen aus

organisatorischen Gruumlnden nicht auf 1240 oder houmlher aktualisieren kontaktieren Sie bitte

den Support

11 Neuerungen in Version 30

Achtung Der BSS 30 setzt Java 8 voraus Java 7 ist nicht mehr nutzbar

Der BSS 30 beinhaltet alle Funktionalitaumlten des BSS 28 Zusaumltzlich ist es jetzt moumlglich ETL-

Transformation zu verarbeiten die mit der die ETL-Pentaho Engine durch BALVI entwickelt

wurden Damit wird der BSS auf das zukuumlnftige BALVI iP2 vorbereitet In diesem Zuge

wurden diverse Funktionalitaumlten aktualisiert

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

332

Daher muumlssen folgende Anpassungen an der contextxml vorgenommen werden bevor die

Version 30 gestartet werden darf

1) Neuer Parameter isJobServiceEnabled

Der Parameter availableServices wurde durch isJobServiceEnabled ersetzt (siehe

Kapitel 2516) Damit ist der Jobservice standardmaumlssig aktiv Suchen sie

availableServices und entfernen sie diesen

2) Neue Logging-Konfiguration

Zu BSS 30 wurde auf eine neue Logging-Klasse umgestellt (siehe Kapitel 26) Dafuumlr

muss die vorhandene log4j-commserverxml durch die logback-bssxml im Ordner

conf ausgetauscht werden damit der neue APPENDER genutzt werden kann

Entfernen sie log4jConfigLocation und fuumlgen loggingconf hinzu

In der Contextxml muss beim neuen Parameter loggingconf der Pfad zur

logback-bssxml eingetragen werden

3) DataSource-Factory

Ist die Factory noch auf orgapachecommonsdbcpBasicDataSourceFactory

eingestellt aumlndern sie diesen auf orgapachetomcatjdbcpoolDataSourceFactory

commonsdhcp wird nicht mehr von Java 8 unterstuumltzt (siehe Kapitel 2511)

Optional Neue Datenquellen ergaumlnzen

Die erste Schnittstelle welche die neue Funktionalitaumlt benoumltigt ist die Datenuumlbergabe von

Probenplaumlnen aus dem Modul bdquoRioPP LM (NRW)ldquo an BALVI iP1 Da der BSS zukuumlnftig mehrere

Module verbinden wird werden ggf mehrere DataSources benoumltigt je Fachmodul wird

dann eine DataSource durch BALVI benannt

Um ETL-Engine (Kettle) mitzuteilen welche DataSource das auszufuumlhrende Modul benoumltigt

sind folgende Umgebungseinstellungen in die ContextXML einzufuumlgen

Beispiel

ltResource

name=jdbckettleiP1DataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10

maxIdle=5

ltResourcegt

Da Kettle fuumlr die Ausfuumlhrung verschieden Ausfuumlhrungsdateien benoumltigt fuumlgt man zwingend

den Parameter kettlePluginDirectory ein Bei dem Wert value legt man das Verzeichnis fest

wo die entsprechenden Dateien gefunden werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

432

ltEnvironment

name=kettlePluginDirectory

value=hometest_ip2_bsskettleplugins

type=javalangString

override=true

gt

12 WICHTIGE Hinweise zum Update von aumllteren Versionen

(vor 28x)

Bei der Version 280 handelt es sich um ein Feature-Update welches fuumlr mehr Stabilitaumlt

bei der Verwendung von zeitgesteuerten Jobs sorgt

Dabei ist es erforderlich

a) Das beiliegende IP-Patch auszufuumlhren bevor das WAR ausgetauscht wird

Ansonsten wird der folgende Fehler bei der Job-Bearbeitung auftreten

ORA-00904 bdquoSERVER_IDldquo unguumlltiger Bezeichner

b) die vorhandene contextxml zu erweitern und den neuen Environment-Parameter

bdquoserverIDldquo zu ergaumlnzen

c) Die vorhandenen Jobs durch den ADMIN wieder zu aktivieren

Erlaumluterungen zu diesem Parameter finden Sie unter den bdquoNeuerungen in Version 28ldquo

13 Nacharbeiten nach dem Update auf Version 28 (ADMIN)

Sofern Sie schon aktive bdquoJobsldquo im BSS in Verwendung haben werden diese mit dem Update

automatisch deaktiviert da die Jobs nun an den ausfuumlhrenden Server gebunden werden

muumlssen Dieses bdquobindenldquo geschieht indem Sie den Job in der Detailansicht oumlffnen und dort

den Haken hinter bdquoJob an Server bindenldquo setzen und speichern

Danach wird der Job wieder aktiv in der Uumlbersicht angezeigt Diesen Konfigurationsschritt

muumlssen Sie nun jedes Mal durchfuumlhren nachdem die Datenbank von Produktion auf Test

geklont wurde

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

532

14 Neuerungen in Version 28

141 Jeder Schnittstellen-Server benoumltigt eine Kennung bdquoserverIDldquo

Viele Kunden nutzen den Schnittstellenserver mehrfach in Ihrer Umgebung da mehrere

BALVI iP Installationen (zB Produktion und Test) in der Infrastruktur existieren

Da die Schnittstellenkonfiguration fuumlr den BSS in der Datenbank abgelegt wird kam es in

manchen Faumlllen vor dass nach einem Klon der Produktionsdatenbank auf ein Testsystem die

im BSS angelegten Jobs sofort nach dem Start in der Testumgebung wieder angesprungen

sind Um dieses Problem zu beseitigen muss jeder BSS ab Version 28 eine eindeutige

bdquoserverIDldquo zugewiesen bekommen Diese Server-ID wird in daher in der bdquocontextxmlldquo

hinterlegt um neutral zur Datenbank zu sein

Ist keine Environment-Variable bdquoserverIDldquo vorhanden so wird der Start des BSS 28 (oder

houmlher) sofort mit einer Fehlermeldung abgebrochen Im Server-Protokoll wird dabei der

Fehler bdquoERROR [IdentityServiceImpl] serverID must not be emptyrdquo ausgegeben Danach

kommt sofort die Meldung dass der BSS wieder heruntergefahren wird

INFO [localhost-startStop-1] [ContextCreationListener]

BALVI-Schnittstellen-Server

Version 280

hellip

ERROR [localhost-startStop-1] [IdentityServiceImpl] serverID must not be empty

ERROR [localhost-startStop-1] [ContextLoader] Context initialization failed

Um eine ldquoserverIDrdquo zu vergeben fuumlgen Sie in der contextxml folgende Angabe ein

lt--

ID fuumlr den Server

Diese muss pro Schnittstellenserver eindeutig sein

Eine Aumlnderung dieser ID fuumlhrt sofort dazu dass alle

Eingerichteten Server-Jobrsquos inaktiv werden und neu mit

Der Instanz gekoppelt werden muumlssen um wieder aktiviert

werden zu koumlnnen

Als value kann ein Text der max Laumlnge von 32 Zeichen

vergeben werden zB ProductionEnvNode1 fuumlr die Produktion

und TestEnvNode1 fuumlr die Testumgebung

--gt

ltEnvironment

name=serverID

value=ProductionEnvNode1

type=javalangString

override=true

gt

142 Optional ist nun eine Namensvergabe moumlglich

Auf Wunsch mehrerer Kunden wurde die Option geschaffen jedem Server zusaumltzlich einen

kundenspezifischen bdquoTitelldquo zu geben um die Server besser unterscheiden zu koumlnnen

lt--

Visueller Name des Servers in der Oberflaumlche

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

632

(Optional)

--gt

ltEnvironment

name=serverName

value=Testumgebung Tomcat 8 mit Test-DB

type=javalangString

override=true

gt

Der hier angegebene Text wird in der Kopfzeile mit ausgegeben

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

732

2 Administrator-Einstellungen

21 Allgemeine Hinweise zum Betrieb

211 Tomcat- und Java-Kompatibilitaumlt

Der BALVI Schnittstellenserver wurde getestet und freigegeben fuumlr Apache Tomcat 8 (ab

Version 8030 oder neuer) Zudem sind die aktuellste (letzte offizielle) Java 8 (ab Java SE

8u40) getestet worden und koumlnnen verwendet werden

Es wird dringend empfohlen bei Java immer die Version mit den aktuellen

Sicherheitsupdates zu verwenden Beachten Sie dabei jedoch dass nicht die Aktualisierung

auf eine andere Java-Version (zB Java 9) gemeint ist

Freigegebene Major-Versionen werden explizit von BALVI benannt Falls Sie vor haben die

Major-Version zu aumlndern pruumlfen Sie bitte die aktuellen Release-Notes oder kontaktieren die

BALVI Kundenbetreuung

212 Nutzung von Java-Proxyeinstellungen

Der BALVI Schnittstellenserver verwendet fuumlr ausgehende Verbindungen die Java-Net

Einstellungen welche in der Java-Dokumentation1 beschrieben sind Falls sie Jobs

einsetzen welche ausgehenden Zugriff auf Adressen im Internet benoumltigen kann es

passieren dass sie zB eine bdquojavanetUnknownHostExceptionldquo im Protokoll finden dann

muumlssen sie ihre Proxy-Umgebung in den Java-Umgebungseinstellungen ergaumlnzen

Die folgenden Parameter sollte daher in ihrer Umgebung gesetzt werden wenn der Zugriff

auf das Internet nur uumlber einen Proxy moumlglich ist

-DproxySet=true

-DproxyHost=10111213

-DproxyPort=8888

-DhttpnonProxyHosts=domainorg|localhost|10

Bitte beachten sie dass der Server nach einer Aumlnderung neu gestartet werden

muss damit die Einstellungen wirksam werden

2121 Proxy-Einstellung unter Windows (Tomcat-Dienst)

Verwenden Sie bitte das Dienste-Konfigurationsprogramm (zB tomcat7wexe) und

ergaumlnzen Sie die fehlenden Einstellungen

1 httpdocsoraclecomjavase8docstechnotesguidesnetpropertieshtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

832

2122 Proxy-Einstellung unter Linux

In Linux wird in der Konfigurationsdatei (zB conftomcat7conf) die Variable

bdquo$JAVA_OPTSldquo entsprechend erweitert und die Werte uumlbergeben Beachten Sie dabei

bitte dass die Variablen von Linux (bzw der Bash) gelesen werden Daher muss das bdquoPipeldquo-

Zeichen bdquo|ldquo mit bdquoldquo maskiert werden ansonsten erhalten Sie ggf bei der Verarbeitung der

Umgebungsvariable bdquohttpnonProxyHostsldquo Fehlermeldungen in der Linux-Konsole welche

dazu fuumlhren dass das Java nicht korrekt konfiguriert werden kann

JAVA_OPTS=$JAVA_OPTS -DproxySet=true -DproxyHost=10111213 -DproxyPort=8888

JAVA_OPTS=$JAVA_OPTS -DhttpnonProxyHosts=domainorg|localhost|10

213 Spracheinstellung Deutsch

Es wurde festgestellt dass unter einigen Linux-Versionen die Spracheinstellung beim

Starten des Apache Tomcat nicht auf eine deutsche Umgebung verweist Dieses kann

technische Probleme verursachen Unter Linux sollte die Einstellung (Umgebungsvariable)

entsprechend auf LANG=de_DEUTF-8 eingestellt sein

214 Datenbankverbindung

Wenn Sie eine Firewall zwischen dem Oracle-Server und dem Database Connection Pool

(DBCP) verwenden sollte unbedingt die bdquovalidationQueryldquo in der DBCP-Konfiguration

aktiviert werden damit die Anwendung schneller freie Connections aus dem Pool erhalten

kann Die Dokumentation zu den Einstellmoumlglichkeiten ist in der beiliegenden Contextxml

ergaumlnzt worden

Bitte beachten Sie dass dringende empfohlen wird die bdquoFactoryldquo auf

orgapachetomcatjdbcpoolDataSourceFactory anzupassen falls sie noch auf

bdquoorgapachecommonsdbcpBasicDataSourceFactoryldquo eingestellt ist

215 Probleme beim Anlegen von LOB-Objekten

Der BALVI Schnittstellen-Server erfordert die JDBC-Spezifikation DBCP V4 welche durch die

Factory bdquoorgapachetomcatjdbcldquo ab Tomcat 7 automatisch bereitgestellt wird

Wenn die Pooling-Komponente oder der Oracle-Treiber nicht JDBC4-Kompatibel sind gibt es

beim bearbeiten von LOB-Objekten in Java diverse Exceptions zB

Servletservice() for servlet soapws threw exception

javalangAbstractMethodError

orgapachecommonsdbcpPoolingDataSource$PoolGuardConnectionWrappercreateClob()Ljava

sqlClob

at debalvicoreauditspyConnectionSpycreateClob(ConnectionSpyjava511)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

932

Ursache dieses Problem ist meistens dass noch nicht auf bdquoorgapachetomcatjdbcldquo

umgestellt wurde

216 Umbenennung der gelieferten WAR-Datei

Das im Paket von BALVI gelieferte WAR kann jederzeit umbenannt werden (zB als

ROOTwar) ohne dass dabei spezielle Einstellungen in der bdquocontextxmlldquo erforderlich sind

Beachten Sie dabei jedoch dass die zum WAR zugehoumlrige contextxml im Apache Tomcat

immer denselben Namen erhaumllt wie das WAR zB commserverwar und commserverxml

Der Name ist dabei Ausschlaggebend fuumlr die Zugriffs-Adresse (Context) im Apache Tomcat

selbst Die Benennung des WAR in bdquocommserverwarldquo wuumlrde folgendermaszligen aufzurufen

sein httpserverportcommserver

217 Server-Schnittstellen

Die Uumlberarbeitung bzw Erweiterung der Export- und Importschnittstellen welche uumlber den

Schnittstellenserver bereitgestellt werden ist unabhaumlngig vom Schnittstellenserver selbst

Die Schnittstellen sind daher nicht Bestandteile des Schnittstellenserver und werden je

Verfahren separat ausgeliefert Ggf ist es fuumlr unterschiedliche Schnittstellen erforderlich

die Grant-Rechte zu aktualisieren (Vgl bdquoWann ist die Ausfuumlhrung des Grant-Skripts

erforderlichldquo)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1032

22 Kompatibilitaumltsliste

Diverse Verfahren setzen eine Mindestversion des Schnittstellen-Servers voraus Die

Schnittstellen sind jedoch so konzipiert dass eine Aktualisierung auf eine houmlhere Version

des Servers ohne Anpassung an den vorhandenen Schnittstellen jederzeit moumlglich ist

Derzeit sind folgende Mindestanforderungen gegeben

1 Mobil XT 170 oder houmlher setzt Server 265 und BALVI iP 124x voraus

2 Mobil XT 183 oder houmlher setzt Server 281 und BALVI iP 124x voraus

3 Die Schnittstelle eFI setzt Server 251 und BALVI iP 122c voraus

4 Die Schnittstelle LIMS setzt Server 265 voraus

5 Die Schnittstelle TSK (SN) setzt Server 265 voraus

6 Die Schnittstelle xDomea (SN) setzt Server 265 und Java 7 voraus

7 Die Schnittstelle xGewerbeanzeigen setzt Server 281 BALVI iP 124x Java 8 mit

der bdquoJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy2ldquo und

das Grant Skript 158 oder houmlher voraus

8 Die Schnittstelle RioPP LM (NRW) setzt zwingen Server 30x und die ETL-

Konfiguration voraus

2 httpwwworaclecomtechnetworkjavajavasedownloadsjce8-download-2133166html

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1132

23 Erforderliche Bibliotheken fuumlr Tomcat

Dateiname Funktion Quelle

ojdbc6jar Oracle 11gR2 Clientpaket Oracle JDBC Client fuumlr Java 16 ersetzt die bisherige Version bdquoojdbc14jarldquo Die alte Library muss auf jeden Fall entfernt werden

httpwwworaclecomtechnetworkdatabaseenterprise-editionjdbc-112010-090769html

encrypted-datasource-110-alljar

Die Library muss auf jeden Fall entfernt werden Wird derzeit nicht weiter gepflegt da kein Interesse an der Funktionalitaumlt bestand

slf4j-api-1511jar

slf4j-log4j12-1511jar

log4jdbc4-12beta2jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

commons-dbcp-14jar

commons-pool-154jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

Erwartet wird stattdessen ab Tomcat7 die mitgelieferte bdquotomcat-jdbcjarldquo

log4j-1216jar (oder houmlher)

Logging-Funktionalitaumlt Apache Log4j httploggingapacheorglog4j12downloadhtml

bcprov-jdk15on-153jar (oder houmlher)

BouncyCastle Security Provider fuumlr SSLAES hellip wird ab Version 27 im Ordner bdquolibldquo des Tomcat erwartet Sollte es aus Sicherheitsgruumlnden erwuumlnscht sein eine aktuellere Version einzusetzen ist dieses idR moumlglich

httpmvnrepositorycomartifactorgbouncycastlebcprov-jdk15on153

24 Datenbank-Installation

Der Schnittstellen-Server benoumltigt auszligerhalb des angebundenen BALVI iP keine eigenen

Tabellen Die Web-Anwendung kann im einfachsten Fall direkt auf das Schema von BALVI iP

zugreifen indem der User und das Passwort des BALVI iP-Schemas in der Contextxml

eingetragen werden (nicht empfohlen)

Sollte dieses aus Sicherheitsgruumlnden nicht erwuumlnscht sein (empfohlen vom BSI und BALVI)

finden Sie im Paket ein GRANT-Skript um Zugriffsrechte vom BALVI iP Schema fuumlr den

Webservice-Schema-User einzurichten

Zwischen dem Schema von BALVI iP und jeder Web-Anwendung ist dann eine Trennung

moumlglich um sicherzustellen dass der Datenbank-Benutzer welcher in der Tomcat-

Konfiguration fuumlr die Web-Anwendung eingetragen wird geaumlndert oder geloumlscht werden

kann ohne dass die Windows-Anwendung BALVI iP davon betroffen ist Zudem vergibt das

von BALVI gelieferte Grant-Skript keine Rechte zum Loumlschen von Tabellenstrukturen oder

Tabelleninhalten so dass der Webservice nur festgelegte Daten aumlndern oder lesen darf Es

wird empfohlen je Web-Anwendung einen eigenen Datenbank-Benutzer zu vergeben wenn

sie ein BALVI iP mit mehreren Webservices verbinden wollen

Die Moumlglichkeiten im Uumlberblick

1) Sie betreiben den Webservice mit einem eigenstaumlndigen Oracle-Benutzer In diesem

Fall muss das Grant-Skript ausgefuumlhrt werden um den Webservice-Benutzer und

BALVI iP-Benutzer zu koppeln

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 3: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

332

Daher muumlssen folgende Anpassungen an der contextxml vorgenommen werden bevor die

Version 30 gestartet werden darf

1) Neuer Parameter isJobServiceEnabled

Der Parameter availableServices wurde durch isJobServiceEnabled ersetzt (siehe

Kapitel 2516) Damit ist der Jobservice standardmaumlssig aktiv Suchen sie

availableServices und entfernen sie diesen

2) Neue Logging-Konfiguration

Zu BSS 30 wurde auf eine neue Logging-Klasse umgestellt (siehe Kapitel 26) Dafuumlr

muss die vorhandene log4j-commserverxml durch die logback-bssxml im Ordner

conf ausgetauscht werden damit der neue APPENDER genutzt werden kann

Entfernen sie log4jConfigLocation und fuumlgen loggingconf hinzu

In der Contextxml muss beim neuen Parameter loggingconf der Pfad zur

logback-bssxml eingetragen werden

3) DataSource-Factory

Ist die Factory noch auf orgapachecommonsdbcpBasicDataSourceFactory

eingestellt aumlndern sie diesen auf orgapachetomcatjdbcpoolDataSourceFactory

commonsdhcp wird nicht mehr von Java 8 unterstuumltzt (siehe Kapitel 2511)

Optional Neue Datenquellen ergaumlnzen

Die erste Schnittstelle welche die neue Funktionalitaumlt benoumltigt ist die Datenuumlbergabe von

Probenplaumlnen aus dem Modul bdquoRioPP LM (NRW)ldquo an BALVI iP1 Da der BSS zukuumlnftig mehrere

Module verbinden wird werden ggf mehrere DataSources benoumltigt je Fachmodul wird

dann eine DataSource durch BALVI benannt

Um ETL-Engine (Kettle) mitzuteilen welche DataSource das auszufuumlhrende Modul benoumltigt

sind folgende Umgebungseinstellungen in die ContextXML einzufuumlgen

Beispiel

ltResource

name=jdbckettleiP1DataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10

maxIdle=5

ltResourcegt

Da Kettle fuumlr die Ausfuumlhrung verschieden Ausfuumlhrungsdateien benoumltigt fuumlgt man zwingend

den Parameter kettlePluginDirectory ein Bei dem Wert value legt man das Verzeichnis fest

wo die entsprechenden Dateien gefunden werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

432

ltEnvironment

name=kettlePluginDirectory

value=hometest_ip2_bsskettleplugins

type=javalangString

override=true

gt

12 WICHTIGE Hinweise zum Update von aumllteren Versionen

(vor 28x)

Bei der Version 280 handelt es sich um ein Feature-Update welches fuumlr mehr Stabilitaumlt

bei der Verwendung von zeitgesteuerten Jobs sorgt

Dabei ist es erforderlich

a) Das beiliegende IP-Patch auszufuumlhren bevor das WAR ausgetauscht wird

Ansonsten wird der folgende Fehler bei der Job-Bearbeitung auftreten

ORA-00904 bdquoSERVER_IDldquo unguumlltiger Bezeichner

b) die vorhandene contextxml zu erweitern und den neuen Environment-Parameter

bdquoserverIDldquo zu ergaumlnzen

c) Die vorhandenen Jobs durch den ADMIN wieder zu aktivieren

Erlaumluterungen zu diesem Parameter finden Sie unter den bdquoNeuerungen in Version 28ldquo

13 Nacharbeiten nach dem Update auf Version 28 (ADMIN)

Sofern Sie schon aktive bdquoJobsldquo im BSS in Verwendung haben werden diese mit dem Update

automatisch deaktiviert da die Jobs nun an den ausfuumlhrenden Server gebunden werden

muumlssen Dieses bdquobindenldquo geschieht indem Sie den Job in der Detailansicht oumlffnen und dort

den Haken hinter bdquoJob an Server bindenldquo setzen und speichern

Danach wird der Job wieder aktiv in der Uumlbersicht angezeigt Diesen Konfigurationsschritt

muumlssen Sie nun jedes Mal durchfuumlhren nachdem die Datenbank von Produktion auf Test

geklont wurde

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

532

14 Neuerungen in Version 28

141 Jeder Schnittstellen-Server benoumltigt eine Kennung bdquoserverIDldquo

Viele Kunden nutzen den Schnittstellenserver mehrfach in Ihrer Umgebung da mehrere

BALVI iP Installationen (zB Produktion und Test) in der Infrastruktur existieren

Da die Schnittstellenkonfiguration fuumlr den BSS in der Datenbank abgelegt wird kam es in

manchen Faumlllen vor dass nach einem Klon der Produktionsdatenbank auf ein Testsystem die

im BSS angelegten Jobs sofort nach dem Start in der Testumgebung wieder angesprungen

sind Um dieses Problem zu beseitigen muss jeder BSS ab Version 28 eine eindeutige

bdquoserverIDldquo zugewiesen bekommen Diese Server-ID wird in daher in der bdquocontextxmlldquo

hinterlegt um neutral zur Datenbank zu sein

Ist keine Environment-Variable bdquoserverIDldquo vorhanden so wird der Start des BSS 28 (oder

houmlher) sofort mit einer Fehlermeldung abgebrochen Im Server-Protokoll wird dabei der

Fehler bdquoERROR [IdentityServiceImpl] serverID must not be emptyrdquo ausgegeben Danach

kommt sofort die Meldung dass der BSS wieder heruntergefahren wird

INFO [localhost-startStop-1] [ContextCreationListener]

BALVI-Schnittstellen-Server

Version 280

hellip

ERROR [localhost-startStop-1] [IdentityServiceImpl] serverID must not be empty

ERROR [localhost-startStop-1] [ContextLoader] Context initialization failed

Um eine ldquoserverIDrdquo zu vergeben fuumlgen Sie in der contextxml folgende Angabe ein

lt--

ID fuumlr den Server

Diese muss pro Schnittstellenserver eindeutig sein

Eine Aumlnderung dieser ID fuumlhrt sofort dazu dass alle

Eingerichteten Server-Jobrsquos inaktiv werden und neu mit

Der Instanz gekoppelt werden muumlssen um wieder aktiviert

werden zu koumlnnen

Als value kann ein Text der max Laumlnge von 32 Zeichen

vergeben werden zB ProductionEnvNode1 fuumlr die Produktion

und TestEnvNode1 fuumlr die Testumgebung

--gt

ltEnvironment

name=serverID

value=ProductionEnvNode1

type=javalangString

override=true

gt

142 Optional ist nun eine Namensvergabe moumlglich

Auf Wunsch mehrerer Kunden wurde die Option geschaffen jedem Server zusaumltzlich einen

kundenspezifischen bdquoTitelldquo zu geben um die Server besser unterscheiden zu koumlnnen

lt--

Visueller Name des Servers in der Oberflaumlche

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

632

(Optional)

--gt

ltEnvironment

name=serverName

value=Testumgebung Tomcat 8 mit Test-DB

type=javalangString

override=true

gt

Der hier angegebene Text wird in der Kopfzeile mit ausgegeben

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

732

2 Administrator-Einstellungen

21 Allgemeine Hinweise zum Betrieb

211 Tomcat- und Java-Kompatibilitaumlt

Der BALVI Schnittstellenserver wurde getestet und freigegeben fuumlr Apache Tomcat 8 (ab

Version 8030 oder neuer) Zudem sind die aktuellste (letzte offizielle) Java 8 (ab Java SE

8u40) getestet worden und koumlnnen verwendet werden

Es wird dringend empfohlen bei Java immer die Version mit den aktuellen

Sicherheitsupdates zu verwenden Beachten Sie dabei jedoch dass nicht die Aktualisierung

auf eine andere Java-Version (zB Java 9) gemeint ist

Freigegebene Major-Versionen werden explizit von BALVI benannt Falls Sie vor haben die

Major-Version zu aumlndern pruumlfen Sie bitte die aktuellen Release-Notes oder kontaktieren die

BALVI Kundenbetreuung

212 Nutzung von Java-Proxyeinstellungen

Der BALVI Schnittstellenserver verwendet fuumlr ausgehende Verbindungen die Java-Net

Einstellungen welche in der Java-Dokumentation1 beschrieben sind Falls sie Jobs

einsetzen welche ausgehenden Zugriff auf Adressen im Internet benoumltigen kann es

passieren dass sie zB eine bdquojavanetUnknownHostExceptionldquo im Protokoll finden dann

muumlssen sie ihre Proxy-Umgebung in den Java-Umgebungseinstellungen ergaumlnzen

Die folgenden Parameter sollte daher in ihrer Umgebung gesetzt werden wenn der Zugriff

auf das Internet nur uumlber einen Proxy moumlglich ist

-DproxySet=true

-DproxyHost=10111213

-DproxyPort=8888

-DhttpnonProxyHosts=domainorg|localhost|10

Bitte beachten sie dass der Server nach einer Aumlnderung neu gestartet werden

muss damit die Einstellungen wirksam werden

2121 Proxy-Einstellung unter Windows (Tomcat-Dienst)

Verwenden Sie bitte das Dienste-Konfigurationsprogramm (zB tomcat7wexe) und

ergaumlnzen Sie die fehlenden Einstellungen

1 httpdocsoraclecomjavase8docstechnotesguidesnetpropertieshtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

832

2122 Proxy-Einstellung unter Linux

In Linux wird in der Konfigurationsdatei (zB conftomcat7conf) die Variable

bdquo$JAVA_OPTSldquo entsprechend erweitert und die Werte uumlbergeben Beachten Sie dabei

bitte dass die Variablen von Linux (bzw der Bash) gelesen werden Daher muss das bdquoPipeldquo-

Zeichen bdquo|ldquo mit bdquoldquo maskiert werden ansonsten erhalten Sie ggf bei der Verarbeitung der

Umgebungsvariable bdquohttpnonProxyHostsldquo Fehlermeldungen in der Linux-Konsole welche

dazu fuumlhren dass das Java nicht korrekt konfiguriert werden kann

JAVA_OPTS=$JAVA_OPTS -DproxySet=true -DproxyHost=10111213 -DproxyPort=8888

JAVA_OPTS=$JAVA_OPTS -DhttpnonProxyHosts=domainorg|localhost|10

213 Spracheinstellung Deutsch

Es wurde festgestellt dass unter einigen Linux-Versionen die Spracheinstellung beim

Starten des Apache Tomcat nicht auf eine deutsche Umgebung verweist Dieses kann

technische Probleme verursachen Unter Linux sollte die Einstellung (Umgebungsvariable)

entsprechend auf LANG=de_DEUTF-8 eingestellt sein

214 Datenbankverbindung

Wenn Sie eine Firewall zwischen dem Oracle-Server und dem Database Connection Pool

(DBCP) verwenden sollte unbedingt die bdquovalidationQueryldquo in der DBCP-Konfiguration

aktiviert werden damit die Anwendung schneller freie Connections aus dem Pool erhalten

kann Die Dokumentation zu den Einstellmoumlglichkeiten ist in der beiliegenden Contextxml

ergaumlnzt worden

Bitte beachten Sie dass dringende empfohlen wird die bdquoFactoryldquo auf

orgapachetomcatjdbcpoolDataSourceFactory anzupassen falls sie noch auf

bdquoorgapachecommonsdbcpBasicDataSourceFactoryldquo eingestellt ist

215 Probleme beim Anlegen von LOB-Objekten

Der BALVI Schnittstellen-Server erfordert die JDBC-Spezifikation DBCP V4 welche durch die

Factory bdquoorgapachetomcatjdbcldquo ab Tomcat 7 automatisch bereitgestellt wird

Wenn die Pooling-Komponente oder der Oracle-Treiber nicht JDBC4-Kompatibel sind gibt es

beim bearbeiten von LOB-Objekten in Java diverse Exceptions zB

Servletservice() for servlet soapws threw exception

javalangAbstractMethodError

orgapachecommonsdbcpPoolingDataSource$PoolGuardConnectionWrappercreateClob()Ljava

sqlClob

at debalvicoreauditspyConnectionSpycreateClob(ConnectionSpyjava511)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

932

Ursache dieses Problem ist meistens dass noch nicht auf bdquoorgapachetomcatjdbcldquo

umgestellt wurde

216 Umbenennung der gelieferten WAR-Datei

Das im Paket von BALVI gelieferte WAR kann jederzeit umbenannt werden (zB als

ROOTwar) ohne dass dabei spezielle Einstellungen in der bdquocontextxmlldquo erforderlich sind

Beachten Sie dabei jedoch dass die zum WAR zugehoumlrige contextxml im Apache Tomcat

immer denselben Namen erhaumllt wie das WAR zB commserverwar und commserverxml

Der Name ist dabei Ausschlaggebend fuumlr die Zugriffs-Adresse (Context) im Apache Tomcat

selbst Die Benennung des WAR in bdquocommserverwarldquo wuumlrde folgendermaszligen aufzurufen

sein httpserverportcommserver

217 Server-Schnittstellen

Die Uumlberarbeitung bzw Erweiterung der Export- und Importschnittstellen welche uumlber den

Schnittstellenserver bereitgestellt werden ist unabhaumlngig vom Schnittstellenserver selbst

Die Schnittstellen sind daher nicht Bestandteile des Schnittstellenserver und werden je

Verfahren separat ausgeliefert Ggf ist es fuumlr unterschiedliche Schnittstellen erforderlich

die Grant-Rechte zu aktualisieren (Vgl bdquoWann ist die Ausfuumlhrung des Grant-Skripts

erforderlichldquo)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1032

22 Kompatibilitaumltsliste

Diverse Verfahren setzen eine Mindestversion des Schnittstellen-Servers voraus Die

Schnittstellen sind jedoch so konzipiert dass eine Aktualisierung auf eine houmlhere Version

des Servers ohne Anpassung an den vorhandenen Schnittstellen jederzeit moumlglich ist

Derzeit sind folgende Mindestanforderungen gegeben

1 Mobil XT 170 oder houmlher setzt Server 265 und BALVI iP 124x voraus

2 Mobil XT 183 oder houmlher setzt Server 281 und BALVI iP 124x voraus

3 Die Schnittstelle eFI setzt Server 251 und BALVI iP 122c voraus

4 Die Schnittstelle LIMS setzt Server 265 voraus

5 Die Schnittstelle TSK (SN) setzt Server 265 voraus

6 Die Schnittstelle xDomea (SN) setzt Server 265 und Java 7 voraus

7 Die Schnittstelle xGewerbeanzeigen setzt Server 281 BALVI iP 124x Java 8 mit

der bdquoJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy2ldquo und

das Grant Skript 158 oder houmlher voraus

8 Die Schnittstelle RioPP LM (NRW) setzt zwingen Server 30x und die ETL-

Konfiguration voraus

2 httpwwworaclecomtechnetworkjavajavasedownloadsjce8-download-2133166html

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1132

23 Erforderliche Bibliotheken fuumlr Tomcat

Dateiname Funktion Quelle

ojdbc6jar Oracle 11gR2 Clientpaket Oracle JDBC Client fuumlr Java 16 ersetzt die bisherige Version bdquoojdbc14jarldquo Die alte Library muss auf jeden Fall entfernt werden

httpwwworaclecomtechnetworkdatabaseenterprise-editionjdbc-112010-090769html

encrypted-datasource-110-alljar

Die Library muss auf jeden Fall entfernt werden Wird derzeit nicht weiter gepflegt da kein Interesse an der Funktionalitaumlt bestand

slf4j-api-1511jar

slf4j-log4j12-1511jar

log4jdbc4-12beta2jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

commons-dbcp-14jar

commons-pool-154jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

Erwartet wird stattdessen ab Tomcat7 die mitgelieferte bdquotomcat-jdbcjarldquo

log4j-1216jar (oder houmlher)

Logging-Funktionalitaumlt Apache Log4j httploggingapacheorglog4j12downloadhtml

bcprov-jdk15on-153jar (oder houmlher)

BouncyCastle Security Provider fuumlr SSLAES hellip wird ab Version 27 im Ordner bdquolibldquo des Tomcat erwartet Sollte es aus Sicherheitsgruumlnden erwuumlnscht sein eine aktuellere Version einzusetzen ist dieses idR moumlglich

httpmvnrepositorycomartifactorgbouncycastlebcprov-jdk15on153

24 Datenbank-Installation

Der Schnittstellen-Server benoumltigt auszligerhalb des angebundenen BALVI iP keine eigenen

Tabellen Die Web-Anwendung kann im einfachsten Fall direkt auf das Schema von BALVI iP

zugreifen indem der User und das Passwort des BALVI iP-Schemas in der Contextxml

eingetragen werden (nicht empfohlen)

Sollte dieses aus Sicherheitsgruumlnden nicht erwuumlnscht sein (empfohlen vom BSI und BALVI)

finden Sie im Paket ein GRANT-Skript um Zugriffsrechte vom BALVI iP Schema fuumlr den

Webservice-Schema-User einzurichten

Zwischen dem Schema von BALVI iP und jeder Web-Anwendung ist dann eine Trennung

moumlglich um sicherzustellen dass der Datenbank-Benutzer welcher in der Tomcat-

Konfiguration fuumlr die Web-Anwendung eingetragen wird geaumlndert oder geloumlscht werden

kann ohne dass die Windows-Anwendung BALVI iP davon betroffen ist Zudem vergibt das

von BALVI gelieferte Grant-Skript keine Rechte zum Loumlschen von Tabellenstrukturen oder

Tabelleninhalten so dass der Webservice nur festgelegte Daten aumlndern oder lesen darf Es

wird empfohlen je Web-Anwendung einen eigenen Datenbank-Benutzer zu vergeben wenn

sie ein BALVI iP mit mehreren Webservices verbinden wollen

Die Moumlglichkeiten im Uumlberblick

1) Sie betreiben den Webservice mit einem eigenstaumlndigen Oracle-Benutzer In diesem

Fall muss das Grant-Skript ausgefuumlhrt werden um den Webservice-Benutzer und

BALVI iP-Benutzer zu koppeln

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 4: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

432

ltEnvironment

name=kettlePluginDirectory

value=hometest_ip2_bsskettleplugins

type=javalangString

override=true

gt

12 WICHTIGE Hinweise zum Update von aumllteren Versionen

(vor 28x)

Bei der Version 280 handelt es sich um ein Feature-Update welches fuumlr mehr Stabilitaumlt

bei der Verwendung von zeitgesteuerten Jobs sorgt

Dabei ist es erforderlich

a) Das beiliegende IP-Patch auszufuumlhren bevor das WAR ausgetauscht wird

Ansonsten wird der folgende Fehler bei der Job-Bearbeitung auftreten

ORA-00904 bdquoSERVER_IDldquo unguumlltiger Bezeichner

b) die vorhandene contextxml zu erweitern und den neuen Environment-Parameter

bdquoserverIDldquo zu ergaumlnzen

c) Die vorhandenen Jobs durch den ADMIN wieder zu aktivieren

Erlaumluterungen zu diesem Parameter finden Sie unter den bdquoNeuerungen in Version 28ldquo

13 Nacharbeiten nach dem Update auf Version 28 (ADMIN)

Sofern Sie schon aktive bdquoJobsldquo im BSS in Verwendung haben werden diese mit dem Update

automatisch deaktiviert da die Jobs nun an den ausfuumlhrenden Server gebunden werden

muumlssen Dieses bdquobindenldquo geschieht indem Sie den Job in der Detailansicht oumlffnen und dort

den Haken hinter bdquoJob an Server bindenldquo setzen und speichern

Danach wird der Job wieder aktiv in der Uumlbersicht angezeigt Diesen Konfigurationsschritt

muumlssen Sie nun jedes Mal durchfuumlhren nachdem die Datenbank von Produktion auf Test

geklont wurde

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

532

14 Neuerungen in Version 28

141 Jeder Schnittstellen-Server benoumltigt eine Kennung bdquoserverIDldquo

Viele Kunden nutzen den Schnittstellenserver mehrfach in Ihrer Umgebung da mehrere

BALVI iP Installationen (zB Produktion und Test) in der Infrastruktur existieren

Da die Schnittstellenkonfiguration fuumlr den BSS in der Datenbank abgelegt wird kam es in

manchen Faumlllen vor dass nach einem Klon der Produktionsdatenbank auf ein Testsystem die

im BSS angelegten Jobs sofort nach dem Start in der Testumgebung wieder angesprungen

sind Um dieses Problem zu beseitigen muss jeder BSS ab Version 28 eine eindeutige

bdquoserverIDldquo zugewiesen bekommen Diese Server-ID wird in daher in der bdquocontextxmlldquo

hinterlegt um neutral zur Datenbank zu sein

Ist keine Environment-Variable bdquoserverIDldquo vorhanden so wird der Start des BSS 28 (oder

houmlher) sofort mit einer Fehlermeldung abgebrochen Im Server-Protokoll wird dabei der

Fehler bdquoERROR [IdentityServiceImpl] serverID must not be emptyrdquo ausgegeben Danach

kommt sofort die Meldung dass der BSS wieder heruntergefahren wird

INFO [localhost-startStop-1] [ContextCreationListener]

BALVI-Schnittstellen-Server

Version 280

hellip

ERROR [localhost-startStop-1] [IdentityServiceImpl] serverID must not be empty

ERROR [localhost-startStop-1] [ContextLoader] Context initialization failed

Um eine ldquoserverIDrdquo zu vergeben fuumlgen Sie in der contextxml folgende Angabe ein

lt--

ID fuumlr den Server

Diese muss pro Schnittstellenserver eindeutig sein

Eine Aumlnderung dieser ID fuumlhrt sofort dazu dass alle

Eingerichteten Server-Jobrsquos inaktiv werden und neu mit

Der Instanz gekoppelt werden muumlssen um wieder aktiviert

werden zu koumlnnen

Als value kann ein Text der max Laumlnge von 32 Zeichen

vergeben werden zB ProductionEnvNode1 fuumlr die Produktion

und TestEnvNode1 fuumlr die Testumgebung

--gt

ltEnvironment

name=serverID

value=ProductionEnvNode1

type=javalangString

override=true

gt

142 Optional ist nun eine Namensvergabe moumlglich

Auf Wunsch mehrerer Kunden wurde die Option geschaffen jedem Server zusaumltzlich einen

kundenspezifischen bdquoTitelldquo zu geben um die Server besser unterscheiden zu koumlnnen

lt--

Visueller Name des Servers in der Oberflaumlche

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

632

(Optional)

--gt

ltEnvironment

name=serverName

value=Testumgebung Tomcat 8 mit Test-DB

type=javalangString

override=true

gt

Der hier angegebene Text wird in der Kopfzeile mit ausgegeben

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

732

2 Administrator-Einstellungen

21 Allgemeine Hinweise zum Betrieb

211 Tomcat- und Java-Kompatibilitaumlt

Der BALVI Schnittstellenserver wurde getestet und freigegeben fuumlr Apache Tomcat 8 (ab

Version 8030 oder neuer) Zudem sind die aktuellste (letzte offizielle) Java 8 (ab Java SE

8u40) getestet worden und koumlnnen verwendet werden

Es wird dringend empfohlen bei Java immer die Version mit den aktuellen

Sicherheitsupdates zu verwenden Beachten Sie dabei jedoch dass nicht die Aktualisierung

auf eine andere Java-Version (zB Java 9) gemeint ist

Freigegebene Major-Versionen werden explizit von BALVI benannt Falls Sie vor haben die

Major-Version zu aumlndern pruumlfen Sie bitte die aktuellen Release-Notes oder kontaktieren die

BALVI Kundenbetreuung

212 Nutzung von Java-Proxyeinstellungen

Der BALVI Schnittstellenserver verwendet fuumlr ausgehende Verbindungen die Java-Net

Einstellungen welche in der Java-Dokumentation1 beschrieben sind Falls sie Jobs

einsetzen welche ausgehenden Zugriff auf Adressen im Internet benoumltigen kann es

passieren dass sie zB eine bdquojavanetUnknownHostExceptionldquo im Protokoll finden dann

muumlssen sie ihre Proxy-Umgebung in den Java-Umgebungseinstellungen ergaumlnzen

Die folgenden Parameter sollte daher in ihrer Umgebung gesetzt werden wenn der Zugriff

auf das Internet nur uumlber einen Proxy moumlglich ist

-DproxySet=true

-DproxyHost=10111213

-DproxyPort=8888

-DhttpnonProxyHosts=domainorg|localhost|10

Bitte beachten sie dass der Server nach einer Aumlnderung neu gestartet werden

muss damit die Einstellungen wirksam werden

2121 Proxy-Einstellung unter Windows (Tomcat-Dienst)

Verwenden Sie bitte das Dienste-Konfigurationsprogramm (zB tomcat7wexe) und

ergaumlnzen Sie die fehlenden Einstellungen

1 httpdocsoraclecomjavase8docstechnotesguidesnetpropertieshtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

832

2122 Proxy-Einstellung unter Linux

In Linux wird in der Konfigurationsdatei (zB conftomcat7conf) die Variable

bdquo$JAVA_OPTSldquo entsprechend erweitert und die Werte uumlbergeben Beachten Sie dabei

bitte dass die Variablen von Linux (bzw der Bash) gelesen werden Daher muss das bdquoPipeldquo-

Zeichen bdquo|ldquo mit bdquoldquo maskiert werden ansonsten erhalten Sie ggf bei der Verarbeitung der

Umgebungsvariable bdquohttpnonProxyHostsldquo Fehlermeldungen in der Linux-Konsole welche

dazu fuumlhren dass das Java nicht korrekt konfiguriert werden kann

JAVA_OPTS=$JAVA_OPTS -DproxySet=true -DproxyHost=10111213 -DproxyPort=8888

JAVA_OPTS=$JAVA_OPTS -DhttpnonProxyHosts=domainorg|localhost|10

213 Spracheinstellung Deutsch

Es wurde festgestellt dass unter einigen Linux-Versionen die Spracheinstellung beim

Starten des Apache Tomcat nicht auf eine deutsche Umgebung verweist Dieses kann

technische Probleme verursachen Unter Linux sollte die Einstellung (Umgebungsvariable)

entsprechend auf LANG=de_DEUTF-8 eingestellt sein

214 Datenbankverbindung

Wenn Sie eine Firewall zwischen dem Oracle-Server und dem Database Connection Pool

(DBCP) verwenden sollte unbedingt die bdquovalidationQueryldquo in der DBCP-Konfiguration

aktiviert werden damit die Anwendung schneller freie Connections aus dem Pool erhalten

kann Die Dokumentation zu den Einstellmoumlglichkeiten ist in der beiliegenden Contextxml

ergaumlnzt worden

Bitte beachten Sie dass dringende empfohlen wird die bdquoFactoryldquo auf

orgapachetomcatjdbcpoolDataSourceFactory anzupassen falls sie noch auf

bdquoorgapachecommonsdbcpBasicDataSourceFactoryldquo eingestellt ist

215 Probleme beim Anlegen von LOB-Objekten

Der BALVI Schnittstellen-Server erfordert die JDBC-Spezifikation DBCP V4 welche durch die

Factory bdquoorgapachetomcatjdbcldquo ab Tomcat 7 automatisch bereitgestellt wird

Wenn die Pooling-Komponente oder der Oracle-Treiber nicht JDBC4-Kompatibel sind gibt es

beim bearbeiten von LOB-Objekten in Java diverse Exceptions zB

Servletservice() for servlet soapws threw exception

javalangAbstractMethodError

orgapachecommonsdbcpPoolingDataSource$PoolGuardConnectionWrappercreateClob()Ljava

sqlClob

at debalvicoreauditspyConnectionSpycreateClob(ConnectionSpyjava511)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

932

Ursache dieses Problem ist meistens dass noch nicht auf bdquoorgapachetomcatjdbcldquo

umgestellt wurde

216 Umbenennung der gelieferten WAR-Datei

Das im Paket von BALVI gelieferte WAR kann jederzeit umbenannt werden (zB als

ROOTwar) ohne dass dabei spezielle Einstellungen in der bdquocontextxmlldquo erforderlich sind

Beachten Sie dabei jedoch dass die zum WAR zugehoumlrige contextxml im Apache Tomcat

immer denselben Namen erhaumllt wie das WAR zB commserverwar und commserverxml

Der Name ist dabei Ausschlaggebend fuumlr die Zugriffs-Adresse (Context) im Apache Tomcat

selbst Die Benennung des WAR in bdquocommserverwarldquo wuumlrde folgendermaszligen aufzurufen

sein httpserverportcommserver

217 Server-Schnittstellen

Die Uumlberarbeitung bzw Erweiterung der Export- und Importschnittstellen welche uumlber den

Schnittstellenserver bereitgestellt werden ist unabhaumlngig vom Schnittstellenserver selbst

Die Schnittstellen sind daher nicht Bestandteile des Schnittstellenserver und werden je

Verfahren separat ausgeliefert Ggf ist es fuumlr unterschiedliche Schnittstellen erforderlich

die Grant-Rechte zu aktualisieren (Vgl bdquoWann ist die Ausfuumlhrung des Grant-Skripts

erforderlichldquo)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1032

22 Kompatibilitaumltsliste

Diverse Verfahren setzen eine Mindestversion des Schnittstellen-Servers voraus Die

Schnittstellen sind jedoch so konzipiert dass eine Aktualisierung auf eine houmlhere Version

des Servers ohne Anpassung an den vorhandenen Schnittstellen jederzeit moumlglich ist

Derzeit sind folgende Mindestanforderungen gegeben

1 Mobil XT 170 oder houmlher setzt Server 265 und BALVI iP 124x voraus

2 Mobil XT 183 oder houmlher setzt Server 281 und BALVI iP 124x voraus

3 Die Schnittstelle eFI setzt Server 251 und BALVI iP 122c voraus

4 Die Schnittstelle LIMS setzt Server 265 voraus

5 Die Schnittstelle TSK (SN) setzt Server 265 voraus

6 Die Schnittstelle xDomea (SN) setzt Server 265 und Java 7 voraus

7 Die Schnittstelle xGewerbeanzeigen setzt Server 281 BALVI iP 124x Java 8 mit

der bdquoJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy2ldquo und

das Grant Skript 158 oder houmlher voraus

8 Die Schnittstelle RioPP LM (NRW) setzt zwingen Server 30x und die ETL-

Konfiguration voraus

2 httpwwworaclecomtechnetworkjavajavasedownloadsjce8-download-2133166html

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1132

23 Erforderliche Bibliotheken fuumlr Tomcat

Dateiname Funktion Quelle

ojdbc6jar Oracle 11gR2 Clientpaket Oracle JDBC Client fuumlr Java 16 ersetzt die bisherige Version bdquoojdbc14jarldquo Die alte Library muss auf jeden Fall entfernt werden

httpwwworaclecomtechnetworkdatabaseenterprise-editionjdbc-112010-090769html

encrypted-datasource-110-alljar

Die Library muss auf jeden Fall entfernt werden Wird derzeit nicht weiter gepflegt da kein Interesse an der Funktionalitaumlt bestand

slf4j-api-1511jar

slf4j-log4j12-1511jar

log4jdbc4-12beta2jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

commons-dbcp-14jar

commons-pool-154jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

Erwartet wird stattdessen ab Tomcat7 die mitgelieferte bdquotomcat-jdbcjarldquo

log4j-1216jar (oder houmlher)

Logging-Funktionalitaumlt Apache Log4j httploggingapacheorglog4j12downloadhtml

bcprov-jdk15on-153jar (oder houmlher)

BouncyCastle Security Provider fuumlr SSLAES hellip wird ab Version 27 im Ordner bdquolibldquo des Tomcat erwartet Sollte es aus Sicherheitsgruumlnden erwuumlnscht sein eine aktuellere Version einzusetzen ist dieses idR moumlglich

httpmvnrepositorycomartifactorgbouncycastlebcprov-jdk15on153

24 Datenbank-Installation

Der Schnittstellen-Server benoumltigt auszligerhalb des angebundenen BALVI iP keine eigenen

Tabellen Die Web-Anwendung kann im einfachsten Fall direkt auf das Schema von BALVI iP

zugreifen indem der User und das Passwort des BALVI iP-Schemas in der Contextxml

eingetragen werden (nicht empfohlen)

Sollte dieses aus Sicherheitsgruumlnden nicht erwuumlnscht sein (empfohlen vom BSI und BALVI)

finden Sie im Paket ein GRANT-Skript um Zugriffsrechte vom BALVI iP Schema fuumlr den

Webservice-Schema-User einzurichten

Zwischen dem Schema von BALVI iP und jeder Web-Anwendung ist dann eine Trennung

moumlglich um sicherzustellen dass der Datenbank-Benutzer welcher in der Tomcat-

Konfiguration fuumlr die Web-Anwendung eingetragen wird geaumlndert oder geloumlscht werden

kann ohne dass die Windows-Anwendung BALVI iP davon betroffen ist Zudem vergibt das

von BALVI gelieferte Grant-Skript keine Rechte zum Loumlschen von Tabellenstrukturen oder

Tabelleninhalten so dass der Webservice nur festgelegte Daten aumlndern oder lesen darf Es

wird empfohlen je Web-Anwendung einen eigenen Datenbank-Benutzer zu vergeben wenn

sie ein BALVI iP mit mehreren Webservices verbinden wollen

Die Moumlglichkeiten im Uumlberblick

1) Sie betreiben den Webservice mit einem eigenstaumlndigen Oracle-Benutzer In diesem

Fall muss das Grant-Skript ausgefuumlhrt werden um den Webservice-Benutzer und

BALVI iP-Benutzer zu koppeln

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 5: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

532

14 Neuerungen in Version 28

141 Jeder Schnittstellen-Server benoumltigt eine Kennung bdquoserverIDldquo

Viele Kunden nutzen den Schnittstellenserver mehrfach in Ihrer Umgebung da mehrere

BALVI iP Installationen (zB Produktion und Test) in der Infrastruktur existieren

Da die Schnittstellenkonfiguration fuumlr den BSS in der Datenbank abgelegt wird kam es in

manchen Faumlllen vor dass nach einem Klon der Produktionsdatenbank auf ein Testsystem die

im BSS angelegten Jobs sofort nach dem Start in der Testumgebung wieder angesprungen

sind Um dieses Problem zu beseitigen muss jeder BSS ab Version 28 eine eindeutige

bdquoserverIDldquo zugewiesen bekommen Diese Server-ID wird in daher in der bdquocontextxmlldquo

hinterlegt um neutral zur Datenbank zu sein

Ist keine Environment-Variable bdquoserverIDldquo vorhanden so wird der Start des BSS 28 (oder

houmlher) sofort mit einer Fehlermeldung abgebrochen Im Server-Protokoll wird dabei der

Fehler bdquoERROR [IdentityServiceImpl] serverID must not be emptyrdquo ausgegeben Danach

kommt sofort die Meldung dass der BSS wieder heruntergefahren wird

INFO [localhost-startStop-1] [ContextCreationListener]

BALVI-Schnittstellen-Server

Version 280

hellip

ERROR [localhost-startStop-1] [IdentityServiceImpl] serverID must not be empty

ERROR [localhost-startStop-1] [ContextLoader] Context initialization failed

Um eine ldquoserverIDrdquo zu vergeben fuumlgen Sie in der contextxml folgende Angabe ein

lt--

ID fuumlr den Server

Diese muss pro Schnittstellenserver eindeutig sein

Eine Aumlnderung dieser ID fuumlhrt sofort dazu dass alle

Eingerichteten Server-Jobrsquos inaktiv werden und neu mit

Der Instanz gekoppelt werden muumlssen um wieder aktiviert

werden zu koumlnnen

Als value kann ein Text der max Laumlnge von 32 Zeichen

vergeben werden zB ProductionEnvNode1 fuumlr die Produktion

und TestEnvNode1 fuumlr die Testumgebung

--gt

ltEnvironment

name=serverID

value=ProductionEnvNode1

type=javalangString

override=true

gt

142 Optional ist nun eine Namensvergabe moumlglich

Auf Wunsch mehrerer Kunden wurde die Option geschaffen jedem Server zusaumltzlich einen

kundenspezifischen bdquoTitelldquo zu geben um die Server besser unterscheiden zu koumlnnen

lt--

Visueller Name des Servers in der Oberflaumlche

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

632

(Optional)

--gt

ltEnvironment

name=serverName

value=Testumgebung Tomcat 8 mit Test-DB

type=javalangString

override=true

gt

Der hier angegebene Text wird in der Kopfzeile mit ausgegeben

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

732

2 Administrator-Einstellungen

21 Allgemeine Hinweise zum Betrieb

211 Tomcat- und Java-Kompatibilitaumlt

Der BALVI Schnittstellenserver wurde getestet und freigegeben fuumlr Apache Tomcat 8 (ab

Version 8030 oder neuer) Zudem sind die aktuellste (letzte offizielle) Java 8 (ab Java SE

8u40) getestet worden und koumlnnen verwendet werden

Es wird dringend empfohlen bei Java immer die Version mit den aktuellen

Sicherheitsupdates zu verwenden Beachten Sie dabei jedoch dass nicht die Aktualisierung

auf eine andere Java-Version (zB Java 9) gemeint ist

Freigegebene Major-Versionen werden explizit von BALVI benannt Falls Sie vor haben die

Major-Version zu aumlndern pruumlfen Sie bitte die aktuellen Release-Notes oder kontaktieren die

BALVI Kundenbetreuung

212 Nutzung von Java-Proxyeinstellungen

Der BALVI Schnittstellenserver verwendet fuumlr ausgehende Verbindungen die Java-Net

Einstellungen welche in der Java-Dokumentation1 beschrieben sind Falls sie Jobs

einsetzen welche ausgehenden Zugriff auf Adressen im Internet benoumltigen kann es

passieren dass sie zB eine bdquojavanetUnknownHostExceptionldquo im Protokoll finden dann

muumlssen sie ihre Proxy-Umgebung in den Java-Umgebungseinstellungen ergaumlnzen

Die folgenden Parameter sollte daher in ihrer Umgebung gesetzt werden wenn der Zugriff

auf das Internet nur uumlber einen Proxy moumlglich ist

-DproxySet=true

-DproxyHost=10111213

-DproxyPort=8888

-DhttpnonProxyHosts=domainorg|localhost|10

Bitte beachten sie dass der Server nach einer Aumlnderung neu gestartet werden

muss damit die Einstellungen wirksam werden

2121 Proxy-Einstellung unter Windows (Tomcat-Dienst)

Verwenden Sie bitte das Dienste-Konfigurationsprogramm (zB tomcat7wexe) und

ergaumlnzen Sie die fehlenden Einstellungen

1 httpdocsoraclecomjavase8docstechnotesguidesnetpropertieshtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

832

2122 Proxy-Einstellung unter Linux

In Linux wird in der Konfigurationsdatei (zB conftomcat7conf) die Variable

bdquo$JAVA_OPTSldquo entsprechend erweitert und die Werte uumlbergeben Beachten Sie dabei

bitte dass die Variablen von Linux (bzw der Bash) gelesen werden Daher muss das bdquoPipeldquo-

Zeichen bdquo|ldquo mit bdquoldquo maskiert werden ansonsten erhalten Sie ggf bei der Verarbeitung der

Umgebungsvariable bdquohttpnonProxyHostsldquo Fehlermeldungen in der Linux-Konsole welche

dazu fuumlhren dass das Java nicht korrekt konfiguriert werden kann

JAVA_OPTS=$JAVA_OPTS -DproxySet=true -DproxyHost=10111213 -DproxyPort=8888

JAVA_OPTS=$JAVA_OPTS -DhttpnonProxyHosts=domainorg|localhost|10

213 Spracheinstellung Deutsch

Es wurde festgestellt dass unter einigen Linux-Versionen die Spracheinstellung beim

Starten des Apache Tomcat nicht auf eine deutsche Umgebung verweist Dieses kann

technische Probleme verursachen Unter Linux sollte die Einstellung (Umgebungsvariable)

entsprechend auf LANG=de_DEUTF-8 eingestellt sein

214 Datenbankverbindung

Wenn Sie eine Firewall zwischen dem Oracle-Server und dem Database Connection Pool

(DBCP) verwenden sollte unbedingt die bdquovalidationQueryldquo in der DBCP-Konfiguration

aktiviert werden damit die Anwendung schneller freie Connections aus dem Pool erhalten

kann Die Dokumentation zu den Einstellmoumlglichkeiten ist in der beiliegenden Contextxml

ergaumlnzt worden

Bitte beachten Sie dass dringende empfohlen wird die bdquoFactoryldquo auf

orgapachetomcatjdbcpoolDataSourceFactory anzupassen falls sie noch auf

bdquoorgapachecommonsdbcpBasicDataSourceFactoryldquo eingestellt ist

215 Probleme beim Anlegen von LOB-Objekten

Der BALVI Schnittstellen-Server erfordert die JDBC-Spezifikation DBCP V4 welche durch die

Factory bdquoorgapachetomcatjdbcldquo ab Tomcat 7 automatisch bereitgestellt wird

Wenn die Pooling-Komponente oder der Oracle-Treiber nicht JDBC4-Kompatibel sind gibt es

beim bearbeiten von LOB-Objekten in Java diverse Exceptions zB

Servletservice() for servlet soapws threw exception

javalangAbstractMethodError

orgapachecommonsdbcpPoolingDataSource$PoolGuardConnectionWrappercreateClob()Ljava

sqlClob

at debalvicoreauditspyConnectionSpycreateClob(ConnectionSpyjava511)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

932

Ursache dieses Problem ist meistens dass noch nicht auf bdquoorgapachetomcatjdbcldquo

umgestellt wurde

216 Umbenennung der gelieferten WAR-Datei

Das im Paket von BALVI gelieferte WAR kann jederzeit umbenannt werden (zB als

ROOTwar) ohne dass dabei spezielle Einstellungen in der bdquocontextxmlldquo erforderlich sind

Beachten Sie dabei jedoch dass die zum WAR zugehoumlrige contextxml im Apache Tomcat

immer denselben Namen erhaumllt wie das WAR zB commserverwar und commserverxml

Der Name ist dabei Ausschlaggebend fuumlr die Zugriffs-Adresse (Context) im Apache Tomcat

selbst Die Benennung des WAR in bdquocommserverwarldquo wuumlrde folgendermaszligen aufzurufen

sein httpserverportcommserver

217 Server-Schnittstellen

Die Uumlberarbeitung bzw Erweiterung der Export- und Importschnittstellen welche uumlber den

Schnittstellenserver bereitgestellt werden ist unabhaumlngig vom Schnittstellenserver selbst

Die Schnittstellen sind daher nicht Bestandteile des Schnittstellenserver und werden je

Verfahren separat ausgeliefert Ggf ist es fuumlr unterschiedliche Schnittstellen erforderlich

die Grant-Rechte zu aktualisieren (Vgl bdquoWann ist die Ausfuumlhrung des Grant-Skripts

erforderlichldquo)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1032

22 Kompatibilitaumltsliste

Diverse Verfahren setzen eine Mindestversion des Schnittstellen-Servers voraus Die

Schnittstellen sind jedoch so konzipiert dass eine Aktualisierung auf eine houmlhere Version

des Servers ohne Anpassung an den vorhandenen Schnittstellen jederzeit moumlglich ist

Derzeit sind folgende Mindestanforderungen gegeben

1 Mobil XT 170 oder houmlher setzt Server 265 und BALVI iP 124x voraus

2 Mobil XT 183 oder houmlher setzt Server 281 und BALVI iP 124x voraus

3 Die Schnittstelle eFI setzt Server 251 und BALVI iP 122c voraus

4 Die Schnittstelle LIMS setzt Server 265 voraus

5 Die Schnittstelle TSK (SN) setzt Server 265 voraus

6 Die Schnittstelle xDomea (SN) setzt Server 265 und Java 7 voraus

7 Die Schnittstelle xGewerbeanzeigen setzt Server 281 BALVI iP 124x Java 8 mit

der bdquoJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy2ldquo und

das Grant Skript 158 oder houmlher voraus

8 Die Schnittstelle RioPP LM (NRW) setzt zwingen Server 30x und die ETL-

Konfiguration voraus

2 httpwwworaclecomtechnetworkjavajavasedownloadsjce8-download-2133166html

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1132

23 Erforderliche Bibliotheken fuumlr Tomcat

Dateiname Funktion Quelle

ojdbc6jar Oracle 11gR2 Clientpaket Oracle JDBC Client fuumlr Java 16 ersetzt die bisherige Version bdquoojdbc14jarldquo Die alte Library muss auf jeden Fall entfernt werden

httpwwworaclecomtechnetworkdatabaseenterprise-editionjdbc-112010-090769html

encrypted-datasource-110-alljar

Die Library muss auf jeden Fall entfernt werden Wird derzeit nicht weiter gepflegt da kein Interesse an der Funktionalitaumlt bestand

slf4j-api-1511jar

slf4j-log4j12-1511jar

log4jdbc4-12beta2jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

commons-dbcp-14jar

commons-pool-154jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

Erwartet wird stattdessen ab Tomcat7 die mitgelieferte bdquotomcat-jdbcjarldquo

log4j-1216jar (oder houmlher)

Logging-Funktionalitaumlt Apache Log4j httploggingapacheorglog4j12downloadhtml

bcprov-jdk15on-153jar (oder houmlher)

BouncyCastle Security Provider fuumlr SSLAES hellip wird ab Version 27 im Ordner bdquolibldquo des Tomcat erwartet Sollte es aus Sicherheitsgruumlnden erwuumlnscht sein eine aktuellere Version einzusetzen ist dieses idR moumlglich

httpmvnrepositorycomartifactorgbouncycastlebcprov-jdk15on153

24 Datenbank-Installation

Der Schnittstellen-Server benoumltigt auszligerhalb des angebundenen BALVI iP keine eigenen

Tabellen Die Web-Anwendung kann im einfachsten Fall direkt auf das Schema von BALVI iP

zugreifen indem der User und das Passwort des BALVI iP-Schemas in der Contextxml

eingetragen werden (nicht empfohlen)

Sollte dieses aus Sicherheitsgruumlnden nicht erwuumlnscht sein (empfohlen vom BSI und BALVI)

finden Sie im Paket ein GRANT-Skript um Zugriffsrechte vom BALVI iP Schema fuumlr den

Webservice-Schema-User einzurichten

Zwischen dem Schema von BALVI iP und jeder Web-Anwendung ist dann eine Trennung

moumlglich um sicherzustellen dass der Datenbank-Benutzer welcher in der Tomcat-

Konfiguration fuumlr die Web-Anwendung eingetragen wird geaumlndert oder geloumlscht werden

kann ohne dass die Windows-Anwendung BALVI iP davon betroffen ist Zudem vergibt das

von BALVI gelieferte Grant-Skript keine Rechte zum Loumlschen von Tabellenstrukturen oder

Tabelleninhalten so dass der Webservice nur festgelegte Daten aumlndern oder lesen darf Es

wird empfohlen je Web-Anwendung einen eigenen Datenbank-Benutzer zu vergeben wenn

sie ein BALVI iP mit mehreren Webservices verbinden wollen

Die Moumlglichkeiten im Uumlberblick

1) Sie betreiben den Webservice mit einem eigenstaumlndigen Oracle-Benutzer In diesem

Fall muss das Grant-Skript ausgefuumlhrt werden um den Webservice-Benutzer und

BALVI iP-Benutzer zu koppeln

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 6: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

632

(Optional)

--gt

ltEnvironment

name=serverName

value=Testumgebung Tomcat 8 mit Test-DB

type=javalangString

override=true

gt

Der hier angegebene Text wird in der Kopfzeile mit ausgegeben

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

732

2 Administrator-Einstellungen

21 Allgemeine Hinweise zum Betrieb

211 Tomcat- und Java-Kompatibilitaumlt

Der BALVI Schnittstellenserver wurde getestet und freigegeben fuumlr Apache Tomcat 8 (ab

Version 8030 oder neuer) Zudem sind die aktuellste (letzte offizielle) Java 8 (ab Java SE

8u40) getestet worden und koumlnnen verwendet werden

Es wird dringend empfohlen bei Java immer die Version mit den aktuellen

Sicherheitsupdates zu verwenden Beachten Sie dabei jedoch dass nicht die Aktualisierung

auf eine andere Java-Version (zB Java 9) gemeint ist

Freigegebene Major-Versionen werden explizit von BALVI benannt Falls Sie vor haben die

Major-Version zu aumlndern pruumlfen Sie bitte die aktuellen Release-Notes oder kontaktieren die

BALVI Kundenbetreuung

212 Nutzung von Java-Proxyeinstellungen

Der BALVI Schnittstellenserver verwendet fuumlr ausgehende Verbindungen die Java-Net

Einstellungen welche in der Java-Dokumentation1 beschrieben sind Falls sie Jobs

einsetzen welche ausgehenden Zugriff auf Adressen im Internet benoumltigen kann es

passieren dass sie zB eine bdquojavanetUnknownHostExceptionldquo im Protokoll finden dann

muumlssen sie ihre Proxy-Umgebung in den Java-Umgebungseinstellungen ergaumlnzen

Die folgenden Parameter sollte daher in ihrer Umgebung gesetzt werden wenn der Zugriff

auf das Internet nur uumlber einen Proxy moumlglich ist

-DproxySet=true

-DproxyHost=10111213

-DproxyPort=8888

-DhttpnonProxyHosts=domainorg|localhost|10

Bitte beachten sie dass der Server nach einer Aumlnderung neu gestartet werden

muss damit die Einstellungen wirksam werden

2121 Proxy-Einstellung unter Windows (Tomcat-Dienst)

Verwenden Sie bitte das Dienste-Konfigurationsprogramm (zB tomcat7wexe) und

ergaumlnzen Sie die fehlenden Einstellungen

1 httpdocsoraclecomjavase8docstechnotesguidesnetpropertieshtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

832

2122 Proxy-Einstellung unter Linux

In Linux wird in der Konfigurationsdatei (zB conftomcat7conf) die Variable

bdquo$JAVA_OPTSldquo entsprechend erweitert und die Werte uumlbergeben Beachten Sie dabei

bitte dass die Variablen von Linux (bzw der Bash) gelesen werden Daher muss das bdquoPipeldquo-

Zeichen bdquo|ldquo mit bdquoldquo maskiert werden ansonsten erhalten Sie ggf bei der Verarbeitung der

Umgebungsvariable bdquohttpnonProxyHostsldquo Fehlermeldungen in der Linux-Konsole welche

dazu fuumlhren dass das Java nicht korrekt konfiguriert werden kann

JAVA_OPTS=$JAVA_OPTS -DproxySet=true -DproxyHost=10111213 -DproxyPort=8888

JAVA_OPTS=$JAVA_OPTS -DhttpnonProxyHosts=domainorg|localhost|10

213 Spracheinstellung Deutsch

Es wurde festgestellt dass unter einigen Linux-Versionen die Spracheinstellung beim

Starten des Apache Tomcat nicht auf eine deutsche Umgebung verweist Dieses kann

technische Probleme verursachen Unter Linux sollte die Einstellung (Umgebungsvariable)

entsprechend auf LANG=de_DEUTF-8 eingestellt sein

214 Datenbankverbindung

Wenn Sie eine Firewall zwischen dem Oracle-Server und dem Database Connection Pool

(DBCP) verwenden sollte unbedingt die bdquovalidationQueryldquo in der DBCP-Konfiguration

aktiviert werden damit die Anwendung schneller freie Connections aus dem Pool erhalten

kann Die Dokumentation zu den Einstellmoumlglichkeiten ist in der beiliegenden Contextxml

ergaumlnzt worden

Bitte beachten Sie dass dringende empfohlen wird die bdquoFactoryldquo auf

orgapachetomcatjdbcpoolDataSourceFactory anzupassen falls sie noch auf

bdquoorgapachecommonsdbcpBasicDataSourceFactoryldquo eingestellt ist

215 Probleme beim Anlegen von LOB-Objekten

Der BALVI Schnittstellen-Server erfordert die JDBC-Spezifikation DBCP V4 welche durch die

Factory bdquoorgapachetomcatjdbcldquo ab Tomcat 7 automatisch bereitgestellt wird

Wenn die Pooling-Komponente oder der Oracle-Treiber nicht JDBC4-Kompatibel sind gibt es

beim bearbeiten von LOB-Objekten in Java diverse Exceptions zB

Servletservice() for servlet soapws threw exception

javalangAbstractMethodError

orgapachecommonsdbcpPoolingDataSource$PoolGuardConnectionWrappercreateClob()Ljava

sqlClob

at debalvicoreauditspyConnectionSpycreateClob(ConnectionSpyjava511)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

932

Ursache dieses Problem ist meistens dass noch nicht auf bdquoorgapachetomcatjdbcldquo

umgestellt wurde

216 Umbenennung der gelieferten WAR-Datei

Das im Paket von BALVI gelieferte WAR kann jederzeit umbenannt werden (zB als

ROOTwar) ohne dass dabei spezielle Einstellungen in der bdquocontextxmlldquo erforderlich sind

Beachten Sie dabei jedoch dass die zum WAR zugehoumlrige contextxml im Apache Tomcat

immer denselben Namen erhaumllt wie das WAR zB commserverwar und commserverxml

Der Name ist dabei Ausschlaggebend fuumlr die Zugriffs-Adresse (Context) im Apache Tomcat

selbst Die Benennung des WAR in bdquocommserverwarldquo wuumlrde folgendermaszligen aufzurufen

sein httpserverportcommserver

217 Server-Schnittstellen

Die Uumlberarbeitung bzw Erweiterung der Export- und Importschnittstellen welche uumlber den

Schnittstellenserver bereitgestellt werden ist unabhaumlngig vom Schnittstellenserver selbst

Die Schnittstellen sind daher nicht Bestandteile des Schnittstellenserver und werden je

Verfahren separat ausgeliefert Ggf ist es fuumlr unterschiedliche Schnittstellen erforderlich

die Grant-Rechte zu aktualisieren (Vgl bdquoWann ist die Ausfuumlhrung des Grant-Skripts

erforderlichldquo)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1032

22 Kompatibilitaumltsliste

Diverse Verfahren setzen eine Mindestversion des Schnittstellen-Servers voraus Die

Schnittstellen sind jedoch so konzipiert dass eine Aktualisierung auf eine houmlhere Version

des Servers ohne Anpassung an den vorhandenen Schnittstellen jederzeit moumlglich ist

Derzeit sind folgende Mindestanforderungen gegeben

1 Mobil XT 170 oder houmlher setzt Server 265 und BALVI iP 124x voraus

2 Mobil XT 183 oder houmlher setzt Server 281 und BALVI iP 124x voraus

3 Die Schnittstelle eFI setzt Server 251 und BALVI iP 122c voraus

4 Die Schnittstelle LIMS setzt Server 265 voraus

5 Die Schnittstelle TSK (SN) setzt Server 265 voraus

6 Die Schnittstelle xDomea (SN) setzt Server 265 und Java 7 voraus

7 Die Schnittstelle xGewerbeanzeigen setzt Server 281 BALVI iP 124x Java 8 mit

der bdquoJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy2ldquo und

das Grant Skript 158 oder houmlher voraus

8 Die Schnittstelle RioPP LM (NRW) setzt zwingen Server 30x und die ETL-

Konfiguration voraus

2 httpwwworaclecomtechnetworkjavajavasedownloadsjce8-download-2133166html

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1132

23 Erforderliche Bibliotheken fuumlr Tomcat

Dateiname Funktion Quelle

ojdbc6jar Oracle 11gR2 Clientpaket Oracle JDBC Client fuumlr Java 16 ersetzt die bisherige Version bdquoojdbc14jarldquo Die alte Library muss auf jeden Fall entfernt werden

httpwwworaclecomtechnetworkdatabaseenterprise-editionjdbc-112010-090769html

encrypted-datasource-110-alljar

Die Library muss auf jeden Fall entfernt werden Wird derzeit nicht weiter gepflegt da kein Interesse an der Funktionalitaumlt bestand

slf4j-api-1511jar

slf4j-log4j12-1511jar

log4jdbc4-12beta2jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

commons-dbcp-14jar

commons-pool-154jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

Erwartet wird stattdessen ab Tomcat7 die mitgelieferte bdquotomcat-jdbcjarldquo

log4j-1216jar (oder houmlher)

Logging-Funktionalitaumlt Apache Log4j httploggingapacheorglog4j12downloadhtml

bcprov-jdk15on-153jar (oder houmlher)

BouncyCastle Security Provider fuumlr SSLAES hellip wird ab Version 27 im Ordner bdquolibldquo des Tomcat erwartet Sollte es aus Sicherheitsgruumlnden erwuumlnscht sein eine aktuellere Version einzusetzen ist dieses idR moumlglich

httpmvnrepositorycomartifactorgbouncycastlebcprov-jdk15on153

24 Datenbank-Installation

Der Schnittstellen-Server benoumltigt auszligerhalb des angebundenen BALVI iP keine eigenen

Tabellen Die Web-Anwendung kann im einfachsten Fall direkt auf das Schema von BALVI iP

zugreifen indem der User und das Passwort des BALVI iP-Schemas in der Contextxml

eingetragen werden (nicht empfohlen)

Sollte dieses aus Sicherheitsgruumlnden nicht erwuumlnscht sein (empfohlen vom BSI und BALVI)

finden Sie im Paket ein GRANT-Skript um Zugriffsrechte vom BALVI iP Schema fuumlr den

Webservice-Schema-User einzurichten

Zwischen dem Schema von BALVI iP und jeder Web-Anwendung ist dann eine Trennung

moumlglich um sicherzustellen dass der Datenbank-Benutzer welcher in der Tomcat-

Konfiguration fuumlr die Web-Anwendung eingetragen wird geaumlndert oder geloumlscht werden

kann ohne dass die Windows-Anwendung BALVI iP davon betroffen ist Zudem vergibt das

von BALVI gelieferte Grant-Skript keine Rechte zum Loumlschen von Tabellenstrukturen oder

Tabelleninhalten so dass der Webservice nur festgelegte Daten aumlndern oder lesen darf Es

wird empfohlen je Web-Anwendung einen eigenen Datenbank-Benutzer zu vergeben wenn

sie ein BALVI iP mit mehreren Webservices verbinden wollen

Die Moumlglichkeiten im Uumlberblick

1) Sie betreiben den Webservice mit einem eigenstaumlndigen Oracle-Benutzer In diesem

Fall muss das Grant-Skript ausgefuumlhrt werden um den Webservice-Benutzer und

BALVI iP-Benutzer zu koppeln

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 7: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

732

2 Administrator-Einstellungen

21 Allgemeine Hinweise zum Betrieb

211 Tomcat- und Java-Kompatibilitaumlt

Der BALVI Schnittstellenserver wurde getestet und freigegeben fuumlr Apache Tomcat 8 (ab

Version 8030 oder neuer) Zudem sind die aktuellste (letzte offizielle) Java 8 (ab Java SE

8u40) getestet worden und koumlnnen verwendet werden

Es wird dringend empfohlen bei Java immer die Version mit den aktuellen

Sicherheitsupdates zu verwenden Beachten Sie dabei jedoch dass nicht die Aktualisierung

auf eine andere Java-Version (zB Java 9) gemeint ist

Freigegebene Major-Versionen werden explizit von BALVI benannt Falls Sie vor haben die

Major-Version zu aumlndern pruumlfen Sie bitte die aktuellen Release-Notes oder kontaktieren die

BALVI Kundenbetreuung

212 Nutzung von Java-Proxyeinstellungen

Der BALVI Schnittstellenserver verwendet fuumlr ausgehende Verbindungen die Java-Net

Einstellungen welche in der Java-Dokumentation1 beschrieben sind Falls sie Jobs

einsetzen welche ausgehenden Zugriff auf Adressen im Internet benoumltigen kann es

passieren dass sie zB eine bdquojavanetUnknownHostExceptionldquo im Protokoll finden dann

muumlssen sie ihre Proxy-Umgebung in den Java-Umgebungseinstellungen ergaumlnzen

Die folgenden Parameter sollte daher in ihrer Umgebung gesetzt werden wenn der Zugriff

auf das Internet nur uumlber einen Proxy moumlglich ist

-DproxySet=true

-DproxyHost=10111213

-DproxyPort=8888

-DhttpnonProxyHosts=domainorg|localhost|10

Bitte beachten sie dass der Server nach einer Aumlnderung neu gestartet werden

muss damit die Einstellungen wirksam werden

2121 Proxy-Einstellung unter Windows (Tomcat-Dienst)

Verwenden Sie bitte das Dienste-Konfigurationsprogramm (zB tomcat7wexe) und

ergaumlnzen Sie die fehlenden Einstellungen

1 httpdocsoraclecomjavase8docstechnotesguidesnetpropertieshtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

832

2122 Proxy-Einstellung unter Linux

In Linux wird in der Konfigurationsdatei (zB conftomcat7conf) die Variable

bdquo$JAVA_OPTSldquo entsprechend erweitert und die Werte uumlbergeben Beachten Sie dabei

bitte dass die Variablen von Linux (bzw der Bash) gelesen werden Daher muss das bdquoPipeldquo-

Zeichen bdquo|ldquo mit bdquoldquo maskiert werden ansonsten erhalten Sie ggf bei der Verarbeitung der

Umgebungsvariable bdquohttpnonProxyHostsldquo Fehlermeldungen in der Linux-Konsole welche

dazu fuumlhren dass das Java nicht korrekt konfiguriert werden kann

JAVA_OPTS=$JAVA_OPTS -DproxySet=true -DproxyHost=10111213 -DproxyPort=8888

JAVA_OPTS=$JAVA_OPTS -DhttpnonProxyHosts=domainorg|localhost|10

213 Spracheinstellung Deutsch

Es wurde festgestellt dass unter einigen Linux-Versionen die Spracheinstellung beim

Starten des Apache Tomcat nicht auf eine deutsche Umgebung verweist Dieses kann

technische Probleme verursachen Unter Linux sollte die Einstellung (Umgebungsvariable)

entsprechend auf LANG=de_DEUTF-8 eingestellt sein

214 Datenbankverbindung

Wenn Sie eine Firewall zwischen dem Oracle-Server und dem Database Connection Pool

(DBCP) verwenden sollte unbedingt die bdquovalidationQueryldquo in der DBCP-Konfiguration

aktiviert werden damit die Anwendung schneller freie Connections aus dem Pool erhalten

kann Die Dokumentation zu den Einstellmoumlglichkeiten ist in der beiliegenden Contextxml

ergaumlnzt worden

Bitte beachten Sie dass dringende empfohlen wird die bdquoFactoryldquo auf

orgapachetomcatjdbcpoolDataSourceFactory anzupassen falls sie noch auf

bdquoorgapachecommonsdbcpBasicDataSourceFactoryldquo eingestellt ist

215 Probleme beim Anlegen von LOB-Objekten

Der BALVI Schnittstellen-Server erfordert die JDBC-Spezifikation DBCP V4 welche durch die

Factory bdquoorgapachetomcatjdbcldquo ab Tomcat 7 automatisch bereitgestellt wird

Wenn die Pooling-Komponente oder der Oracle-Treiber nicht JDBC4-Kompatibel sind gibt es

beim bearbeiten von LOB-Objekten in Java diverse Exceptions zB

Servletservice() for servlet soapws threw exception

javalangAbstractMethodError

orgapachecommonsdbcpPoolingDataSource$PoolGuardConnectionWrappercreateClob()Ljava

sqlClob

at debalvicoreauditspyConnectionSpycreateClob(ConnectionSpyjava511)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

932

Ursache dieses Problem ist meistens dass noch nicht auf bdquoorgapachetomcatjdbcldquo

umgestellt wurde

216 Umbenennung der gelieferten WAR-Datei

Das im Paket von BALVI gelieferte WAR kann jederzeit umbenannt werden (zB als

ROOTwar) ohne dass dabei spezielle Einstellungen in der bdquocontextxmlldquo erforderlich sind

Beachten Sie dabei jedoch dass die zum WAR zugehoumlrige contextxml im Apache Tomcat

immer denselben Namen erhaumllt wie das WAR zB commserverwar und commserverxml

Der Name ist dabei Ausschlaggebend fuumlr die Zugriffs-Adresse (Context) im Apache Tomcat

selbst Die Benennung des WAR in bdquocommserverwarldquo wuumlrde folgendermaszligen aufzurufen

sein httpserverportcommserver

217 Server-Schnittstellen

Die Uumlberarbeitung bzw Erweiterung der Export- und Importschnittstellen welche uumlber den

Schnittstellenserver bereitgestellt werden ist unabhaumlngig vom Schnittstellenserver selbst

Die Schnittstellen sind daher nicht Bestandteile des Schnittstellenserver und werden je

Verfahren separat ausgeliefert Ggf ist es fuumlr unterschiedliche Schnittstellen erforderlich

die Grant-Rechte zu aktualisieren (Vgl bdquoWann ist die Ausfuumlhrung des Grant-Skripts

erforderlichldquo)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1032

22 Kompatibilitaumltsliste

Diverse Verfahren setzen eine Mindestversion des Schnittstellen-Servers voraus Die

Schnittstellen sind jedoch so konzipiert dass eine Aktualisierung auf eine houmlhere Version

des Servers ohne Anpassung an den vorhandenen Schnittstellen jederzeit moumlglich ist

Derzeit sind folgende Mindestanforderungen gegeben

1 Mobil XT 170 oder houmlher setzt Server 265 und BALVI iP 124x voraus

2 Mobil XT 183 oder houmlher setzt Server 281 und BALVI iP 124x voraus

3 Die Schnittstelle eFI setzt Server 251 und BALVI iP 122c voraus

4 Die Schnittstelle LIMS setzt Server 265 voraus

5 Die Schnittstelle TSK (SN) setzt Server 265 voraus

6 Die Schnittstelle xDomea (SN) setzt Server 265 und Java 7 voraus

7 Die Schnittstelle xGewerbeanzeigen setzt Server 281 BALVI iP 124x Java 8 mit

der bdquoJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy2ldquo und

das Grant Skript 158 oder houmlher voraus

8 Die Schnittstelle RioPP LM (NRW) setzt zwingen Server 30x und die ETL-

Konfiguration voraus

2 httpwwworaclecomtechnetworkjavajavasedownloadsjce8-download-2133166html

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1132

23 Erforderliche Bibliotheken fuumlr Tomcat

Dateiname Funktion Quelle

ojdbc6jar Oracle 11gR2 Clientpaket Oracle JDBC Client fuumlr Java 16 ersetzt die bisherige Version bdquoojdbc14jarldquo Die alte Library muss auf jeden Fall entfernt werden

httpwwworaclecomtechnetworkdatabaseenterprise-editionjdbc-112010-090769html

encrypted-datasource-110-alljar

Die Library muss auf jeden Fall entfernt werden Wird derzeit nicht weiter gepflegt da kein Interesse an der Funktionalitaumlt bestand

slf4j-api-1511jar

slf4j-log4j12-1511jar

log4jdbc4-12beta2jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

commons-dbcp-14jar

commons-pool-154jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

Erwartet wird stattdessen ab Tomcat7 die mitgelieferte bdquotomcat-jdbcjarldquo

log4j-1216jar (oder houmlher)

Logging-Funktionalitaumlt Apache Log4j httploggingapacheorglog4j12downloadhtml

bcprov-jdk15on-153jar (oder houmlher)

BouncyCastle Security Provider fuumlr SSLAES hellip wird ab Version 27 im Ordner bdquolibldquo des Tomcat erwartet Sollte es aus Sicherheitsgruumlnden erwuumlnscht sein eine aktuellere Version einzusetzen ist dieses idR moumlglich

httpmvnrepositorycomartifactorgbouncycastlebcprov-jdk15on153

24 Datenbank-Installation

Der Schnittstellen-Server benoumltigt auszligerhalb des angebundenen BALVI iP keine eigenen

Tabellen Die Web-Anwendung kann im einfachsten Fall direkt auf das Schema von BALVI iP

zugreifen indem der User und das Passwort des BALVI iP-Schemas in der Contextxml

eingetragen werden (nicht empfohlen)

Sollte dieses aus Sicherheitsgruumlnden nicht erwuumlnscht sein (empfohlen vom BSI und BALVI)

finden Sie im Paket ein GRANT-Skript um Zugriffsrechte vom BALVI iP Schema fuumlr den

Webservice-Schema-User einzurichten

Zwischen dem Schema von BALVI iP und jeder Web-Anwendung ist dann eine Trennung

moumlglich um sicherzustellen dass der Datenbank-Benutzer welcher in der Tomcat-

Konfiguration fuumlr die Web-Anwendung eingetragen wird geaumlndert oder geloumlscht werden

kann ohne dass die Windows-Anwendung BALVI iP davon betroffen ist Zudem vergibt das

von BALVI gelieferte Grant-Skript keine Rechte zum Loumlschen von Tabellenstrukturen oder

Tabelleninhalten so dass der Webservice nur festgelegte Daten aumlndern oder lesen darf Es

wird empfohlen je Web-Anwendung einen eigenen Datenbank-Benutzer zu vergeben wenn

sie ein BALVI iP mit mehreren Webservices verbinden wollen

Die Moumlglichkeiten im Uumlberblick

1) Sie betreiben den Webservice mit einem eigenstaumlndigen Oracle-Benutzer In diesem

Fall muss das Grant-Skript ausgefuumlhrt werden um den Webservice-Benutzer und

BALVI iP-Benutzer zu koppeln

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 8: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

832

2122 Proxy-Einstellung unter Linux

In Linux wird in der Konfigurationsdatei (zB conftomcat7conf) die Variable

bdquo$JAVA_OPTSldquo entsprechend erweitert und die Werte uumlbergeben Beachten Sie dabei

bitte dass die Variablen von Linux (bzw der Bash) gelesen werden Daher muss das bdquoPipeldquo-

Zeichen bdquo|ldquo mit bdquoldquo maskiert werden ansonsten erhalten Sie ggf bei der Verarbeitung der

Umgebungsvariable bdquohttpnonProxyHostsldquo Fehlermeldungen in der Linux-Konsole welche

dazu fuumlhren dass das Java nicht korrekt konfiguriert werden kann

JAVA_OPTS=$JAVA_OPTS -DproxySet=true -DproxyHost=10111213 -DproxyPort=8888

JAVA_OPTS=$JAVA_OPTS -DhttpnonProxyHosts=domainorg|localhost|10

213 Spracheinstellung Deutsch

Es wurde festgestellt dass unter einigen Linux-Versionen die Spracheinstellung beim

Starten des Apache Tomcat nicht auf eine deutsche Umgebung verweist Dieses kann

technische Probleme verursachen Unter Linux sollte die Einstellung (Umgebungsvariable)

entsprechend auf LANG=de_DEUTF-8 eingestellt sein

214 Datenbankverbindung

Wenn Sie eine Firewall zwischen dem Oracle-Server und dem Database Connection Pool

(DBCP) verwenden sollte unbedingt die bdquovalidationQueryldquo in der DBCP-Konfiguration

aktiviert werden damit die Anwendung schneller freie Connections aus dem Pool erhalten

kann Die Dokumentation zu den Einstellmoumlglichkeiten ist in der beiliegenden Contextxml

ergaumlnzt worden

Bitte beachten Sie dass dringende empfohlen wird die bdquoFactoryldquo auf

orgapachetomcatjdbcpoolDataSourceFactory anzupassen falls sie noch auf

bdquoorgapachecommonsdbcpBasicDataSourceFactoryldquo eingestellt ist

215 Probleme beim Anlegen von LOB-Objekten

Der BALVI Schnittstellen-Server erfordert die JDBC-Spezifikation DBCP V4 welche durch die

Factory bdquoorgapachetomcatjdbcldquo ab Tomcat 7 automatisch bereitgestellt wird

Wenn die Pooling-Komponente oder der Oracle-Treiber nicht JDBC4-Kompatibel sind gibt es

beim bearbeiten von LOB-Objekten in Java diverse Exceptions zB

Servletservice() for servlet soapws threw exception

javalangAbstractMethodError

orgapachecommonsdbcpPoolingDataSource$PoolGuardConnectionWrappercreateClob()Ljava

sqlClob

at debalvicoreauditspyConnectionSpycreateClob(ConnectionSpyjava511)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

932

Ursache dieses Problem ist meistens dass noch nicht auf bdquoorgapachetomcatjdbcldquo

umgestellt wurde

216 Umbenennung der gelieferten WAR-Datei

Das im Paket von BALVI gelieferte WAR kann jederzeit umbenannt werden (zB als

ROOTwar) ohne dass dabei spezielle Einstellungen in der bdquocontextxmlldquo erforderlich sind

Beachten Sie dabei jedoch dass die zum WAR zugehoumlrige contextxml im Apache Tomcat

immer denselben Namen erhaumllt wie das WAR zB commserverwar und commserverxml

Der Name ist dabei Ausschlaggebend fuumlr die Zugriffs-Adresse (Context) im Apache Tomcat

selbst Die Benennung des WAR in bdquocommserverwarldquo wuumlrde folgendermaszligen aufzurufen

sein httpserverportcommserver

217 Server-Schnittstellen

Die Uumlberarbeitung bzw Erweiterung der Export- und Importschnittstellen welche uumlber den

Schnittstellenserver bereitgestellt werden ist unabhaumlngig vom Schnittstellenserver selbst

Die Schnittstellen sind daher nicht Bestandteile des Schnittstellenserver und werden je

Verfahren separat ausgeliefert Ggf ist es fuumlr unterschiedliche Schnittstellen erforderlich

die Grant-Rechte zu aktualisieren (Vgl bdquoWann ist die Ausfuumlhrung des Grant-Skripts

erforderlichldquo)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1032

22 Kompatibilitaumltsliste

Diverse Verfahren setzen eine Mindestversion des Schnittstellen-Servers voraus Die

Schnittstellen sind jedoch so konzipiert dass eine Aktualisierung auf eine houmlhere Version

des Servers ohne Anpassung an den vorhandenen Schnittstellen jederzeit moumlglich ist

Derzeit sind folgende Mindestanforderungen gegeben

1 Mobil XT 170 oder houmlher setzt Server 265 und BALVI iP 124x voraus

2 Mobil XT 183 oder houmlher setzt Server 281 und BALVI iP 124x voraus

3 Die Schnittstelle eFI setzt Server 251 und BALVI iP 122c voraus

4 Die Schnittstelle LIMS setzt Server 265 voraus

5 Die Schnittstelle TSK (SN) setzt Server 265 voraus

6 Die Schnittstelle xDomea (SN) setzt Server 265 und Java 7 voraus

7 Die Schnittstelle xGewerbeanzeigen setzt Server 281 BALVI iP 124x Java 8 mit

der bdquoJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy2ldquo und

das Grant Skript 158 oder houmlher voraus

8 Die Schnittstelle RioPP LM (NRW) setzt zwingen Server 30x und die ETL-

Konfiguration voraus

2 httpwwworaclecomtechnetworkjavajavasedownloadsjce8-download-2133166html

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1132

23 Erforderliche Bibliotheken fuumlr Tomcat

Dateiname Funktion Quelle

ojdbc6jar Oracle 11gR2 Clientpaket Oracle JDBC Client fuumlr Java 16 ersetzt die bisherige Version bdquoojdbc14jarldquo Die alte Library muss auf jeden Fall entfernt werden

httpwwworaclecomtechnetworkdatabaseenterprise-editionjdbc-112010-090769html

encrypted-datasource-110-alljar

Die Library muss auf jeden Fall entfernt werden Wird derzeit nicht weiter gepflegt da kein Interesse an der Funktionalitaumlt bestand

slf4j-api-1511jar

slf4j-log4j12-1511jar

log4jdbc4-12beta2jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

commons-dbcp-14jar

commons-pool-154jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

Erwartet wird stattdessen ab Tomcat7 die mitgelieferte bdquotomcat-jdbcjarldquo

log4j-1216jar (oder houmlher)

Logging-Funktionalitaumlt Apache Log4j httploggingapacheorglog4j12downloadhtml

bcprov-jdk15on-153jar (oder houmlher)

BouncyCastle Security Provider fuumlr SSLAES hellip wird ab Version 27 im Ordner bdquolibldquo des Tomcat erwartet Sollte es aus Sicherheitsgruumlnden erwuumlnscht sein eine aktuellere Version einzusetzen ist dieses idR moumlglich

httpmvnrepositorycomartifactorgbouncycastlebcprov-jdk15on153

24 Datenbank-Installation

Der Schnittstellen-Server benoumltigt auszligerhalb des angebundenen BALVI iP keine eigenen

Tabellen Die Web-Anwendung kann im einfachsten Fall direkt auf das Schema von BALVI iP

zugreifen indem der User und das Passwort des BALVI iP-Schemas in der Contextxml

eingetragen werden (nicht empfohlen)

Sollte dieses aus Sicherheitsgruumlnden nicht erwuumlnscht sein (empfohlen vom BSI und BALVI)

finden Sie im Paket ein GRANT-Skript um Zugriffsrechte vom BALVI iP Schema fuumlr den

Webservice-Schema-User einzurichten

Zwischen dem Schema von BALVI iP und jeder Web-Anwendung ist dann eine Trennung

moumlglich um sicherzustellen dass der Datenbank-Benutzer welcher in der Tomcat-

Konfiguration fuumlr die Web-Anwendung eingetragen wird geaumlndert oder geloumlscht werden

kann ohne dass die Windows-Anwendung BALVI iP davon betroffen ist Zudem vergibt das

von BALVI gelieferte Grant-Skript keine Rechte zum Loumlschen von Tabellenstrukturen oder

Tabelleninhalten so dass der Webservice nur festgelegte Daten aumlndern oder lesen darf Es

wird empfohlen je Web-Anwendung einen eigenen Datenbank-Benutzer zu vergeben wenn

sie ein BALVI iP mit mehreren Webservices verbinden wollen

Die Moumlglichkeiten im Uumlberblick

1) Sie betreiben den Webservice mit einem eigenstaumlndigen Oracle-Benutzer In diesem

Fall muss das Grant-Skript ausgefuumlhrt werden um den Webservice-Benutzer und

BALVI iP-Benutzer zu koppeln

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 9: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

932

Ursache dieses Problem ist meistens dass noch nicht auf bdquoorgapachetomcatjdbcldquo

umgestellt wurde

216 Umbenennung der gelieferten WAR-Datei

Das im Paket von BALVI gelieferte WAR kann jederzeit umbenannt werden (zB als

ROOTwar) ohne dass dabei spezielle Einstellungen in der bdquocontextxmlldquo erforderlich sind

Beachten Sie dabei jedoch dass die zum WAR zugehoumlrige contextxml im Apache Tomcat

immer denselben Namen erhaumllt wie das WAR zB commserverwar und commserverxml

Der Name ist dabei Ausschlaggebend fuumlr die Zugriffs-Adresse (Context) im Apache Tomcat

selbst Die Benennung des WAR in bdquocommserverwarldquo wuumlrde folgendermaszligen aufzurufen

sein httpserverportcommserver

217 Server-Schnittstellen

Die Uumlberarbeitung bzw Erweiterung der Export- und Importschnittstellen welche uumlber den

Schnittstellenserver bereitgestellt werden ist unabhaumlngig vom Schnittstellenserver selbst

Die Schnittstellen sind daher nicht Bestandteile des Schnittstellenserver und werden je

Verfahren separat ausgeliefert Ggf ist es fuumlr unterschiedliche Schnittstellen erforderlich

die Grant-Rechte zu aktualisieren (Vgl bdquoWann ist die Ausfuumlhrung des Grant-Skripts

erforderlichldquo)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1032

22 Kompatibilitaumltsliste

Diverse Verfahren setzen eine Mindestversion des Schnittstellen-Servers voraus Die

Schnittstellen sind jedoch so konzipiert dass eine Aktualisierung auf eine houmlhere Version

des Servers ohne Anpassung an den vorhandenen Schnittstellen jederzeit moumlglich ist

Derzeit sind folgende Mindestanforderungen gegeben

1 Mobil XT 170 oder houmlher setzt Server 265 und BALVI iP 124x voraus

2 Mobil XT 183 oder houmlher setzt Server 281 und BALVI iP 124x voraus

3 Die Schnittstelle eFI setzt Server 251 und BALVI iP 122c voraus

4 Die Schnittstelle LIMS setzt Server 265 voraus

5 Die Schnittstelle TSK (SN) setzt Server 265 voraus

6 Die Schnittstelle xDomea (SN) setzt Server 265 und Java 7 voraus

7 Die Schnittstelle xGewerbeanzeigen setzt Server 281 BALVI iP 124x Java 8 mit

der bdquoJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy2ldquo und

das Grant Skript 158 oder houmlher voraus

8 Die Schnittstelle RioPP LM (NRW) setzt zwingen Server 30x und die ETL-

Konfiguration voraus

2 httpwwworaclecomtechnetworkjavajavasedownloadsjce8-download-2133166html

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1132

23 Erforderliche Bibliotheken fuumlr Tomcat

Dateiname Funktion Quelle

ojdbc6jar Oracle 11gR2 Clientpaket Oracle JDBC Client fuumlr Java 16 ersetzt die bisherige Version bdquoojdbc14jarldquo Die alte Library muss auf jeden Fall entfernt werden

httpwwworaclecomtechnetworkdatabaseenterprise-editionjdbc-112010-090769html

encrypted-datasource-110-alljar

Die Library muss auf jeden Fall entfernt werden Wird derzeit nicht weiter gepflegt da kein Interesse an der Funktionalitaumlt bestand

slf4j-api-1511jar

slf4j-log4j12-1511jar

log4jdbc4-12beta2jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

commons-dbcp-14jar

commons-pool-154jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

Erwartet wird stattdessen ab Tomcat7 die mitgelieferte bdquotomcat-jdbcjarldquo

log4j-1216jar (oder houmlher)

Logging-Funktionalitaumlt Apache Log4j httploggingapacheorglog4j12downloadhtml

bcprov-jdk15on-153jar (oder houmlher)

BouncyCastle Security Provider fuumlr SSLAES hellip wird ab Version 27 im Ordner bdquolibldquo des Tomcat erwartet Sollte es aus Sicherheitsgruumlnden erwuumlnscht sein eine aktuellere Version einzusetzen ist dieses idR moumlglich

httpmvnrepositorycomartifactorgbouncycastlebcprov-jdk15on153

24 Datenbank-Installation

Der Schnittstellen-Server benoumltigt auszligerhalb des angebundenen BALVI iP keine eigenen

Tabellen Die Web-Anwendung kann im einfachsten Fall direkt auf das Schema von BALVI iP

zugreifen indem der User und das Passwort des BALVI iP-Schemas in der Contextxml

eingetragen werden (nicht empfohlen)

Sollte dieses aus Sicherheitsgruumlnden nicht erwuumlnscht sein (empfohlen vom BSI und BALVI)

finden Sie im Paket ein GRANT-Skript um Zugriffsrechte vom BALVI iP Schema fuumlr den

Webservice-Schema-User einzurichten

Zwischen dem Schema von BALVI iP und jeder Web-Anwendung ist dann eine Trennung

moumlglich um sicherzustellen dass der Datenbank-Benutzer welcher in der Tomcat-

Konfiguration fuumlr die Web-Anwendung eingetragen wird geaumlndert oder geloumlscht werden

kann ohne dass die Windows-Anwendung BALVI iP davon betroffen ist Zudem vergibt das

von BALVI gelieferte Grant-Skript keine Rechte zum Loumlschen von Tabellenstrukturen oder

Tabelleninhalten so dass der Webservice nur festgelegte Daten aumlndern oder lesen darf Es

wird empfohlen je Web-Anwendung einen eigenen Datenbank-Benutzer zu vergeben wenn

sie ein BALVI iP mit mehreren Webservices verbinden wollen

Die Moumlglichkeiten im Uumlberblick

1) Sie betreiben den Webservice mit einem eigenstaumlndigen Oracle-Benutzer In diesem

Fall muss das Grant-Skript ausgefuumlhrt werden um den Webservice-Benutzer und

BALVI iP-Benutzer zu koppeln

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 10: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1032

22 Kompatibilitaumltsliste

Diverse Verfahren setzen eine Mindestversion des Schnittstellen-Servers voraus Die

Schnittstellen sind jedoch so konzipiert dass eine Aktualisierung auf eine houmlhere Version

des Servers ohne Anpassung an den vorhandenen Schnittstellen jederzeit moumlglich ist

Derzeit sind folgende Mindestanforderungen gegeben

1 Mobil XT 170 oder houmlher setzt Server 265 und BALVI iP 124x voraus

2 Mobil XT 183 oder houmlher setzt Server 281 und BALVI iP 124x voraus

3 Die Schnittstelle eFI setzt Server 251 und BALVI iP 122c voraus

4 Die Schnittstelle LIMS setzt Server 265 voraus

5 Die Schnittstelle TSK (SN) setzt Server 265 voraus

6 Die Schnittstelle xDomea (SN) setzt Server 265 und Java 7 voraus

7 Die Schnittstelle xGewerbeanzeigen setzt Server 281 BALVI iP 124x Java 8 mit

der bdquoJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy2ldquo und

das Grant Skript 158 oder houmlher voraus

8 Die Schnittstelle RioPP LM (NRW) setzt zwingen Server 30x und die ETL-

Konfiguration voraus

2 httpwwworaclecomtechnetworkjavajavasedownloadsjce8-download-2133166html

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1132

23 Erforderliche Bibliotheken fuumlr Tomcat

Dateiname Funktion Quelle

ojdbc6jar Oracle 11gR2 Clientpaket Oracle JDBC Client fuumlr Java 16 ersetzt die bisherige Version bdquoojdbc14jarldquo Die alte Library muss auf jeden Fall entfernt werden

httpwwworaclecomtechnetworkdatabaseenterprise-editionjdbc-112010-090769html

encrypted-datasource-110-alljar

Die Library muss auf jeden Fall entfernt werden Wird derzeit nicht weiter gepflegt da kein Interesse an der Funktionalitaumlt bestand

slf4j-api-1511jar

slf4j-log4j12-1511jar

log4jdbc4-12beta2jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

commons-dbcp-14jar

commons-pool-154jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

Erwartet wird stattdessen ab Tomcat7 die mitgelieferte bdquotomcat-jdbcjarldquo

log4j-1216jar (oder houmlher)

Logging-Funktionalitaumlt Apache Log4j httploggingapacheorglog4j12downloadhtml

bcprov-jdk15on-153jar (oder houmlher)

BouncyCastle Security Provider fuumlr SSLAES hellip wird ab Version 27 im Ordner bdquolibldquo des Tomcat erwartet Sollte es aus Sicherheitsgruumlnden erwuumlnscht sein eine aktuellere Version einzusetzen ist dieses idR moumlglich

httpmvnrepositorycomartifactorgbouncycastlebcprov-jdk15on153

24 Datenbank-Installation

Der Schnittstellen-Server benoumltigt auszligerhalb des angebundenen BALVI iP keine eigenen

Tabellen Die Web-Anwendung kann im einfachsten Fall direkt auf das Schema von BALVI iP

zugreifen indem der User und das Passwort des BALVI iP-Schemas in der Contextxml

eingetragen werden (nicht empfohlen)

Sollte dieses aus Sicherheitsgruumlnden nicht erwuumlnscht sein (empfohlen vom BSI und BALVI)

finden Sie im Paket ein GRANT-Skript um Zugriffsrechte vom BALVI iP Schema fuumlr den

Webservice-Schema-User einzurichten

Zwischen dem Schema von BALVI iP und jeder Web-Anwendung ist dann eine Trennung

moumlglich um sicherzustellen dass der Datenbank-Benutzer welcher in der Tomcat-

Konfiguration fuumlr die Web-Anwendung eingetragen wird geaumlndert oder geloumlscht werden

kann ohne dass die Windows-Anwendung BALVI iP davon betroffen ist Zudem vergibt das

von BALVI gelieferte Grant-Skript keine Rechte zum Loumlschen von Tabellenstrukturen oder

Tabelleninhalten so dass der Webservice nur festgelegte Daten aumlndern oder lesen darf Es

wird empfohlen je Web-Anwendung einen eigenen Datenbank-Benutzer zu vergeben wenn

sie ein BALVI iP mit mehreren Webservices verbinden wollen

Die Moumlglichkeiten im Uumlberblick

1) Sie betreiben den Webservice mit einem eigenstaumlndigen Oracle-Benutzer In diesem

Fall muss das Grant-Skript ausgefuumlhrt werden um den Webservice-Benutzer und

BALVI iP-Benutzer zu koppeln

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 11: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1132

23 Erforderliche Bibliotheken fuumlr Tomcat

Dateiname Funktion Quelle

ojdbc6jar Oracle 11gR2 Clientpaket Oracle JDBC Client fuumlr Java 16 ersetzt die bisherige Version bdquoojdbc14jarldquo Die alte Library muss auf jeden Fall entfernt werden

httpwwworaclecomtechnetworkdatabaseenterprise-editionjdbc-112010-090769html

encrypted-datasource-110-alljar

Die Library muss auf jeden Fall entfernt werden Wird derzeit nicht weiter gepflegt da kein Interesse an der Funktionalitaumlt bestand

slf4j-api-1511jar

slf4j-log4j12-1511jar

log4jdbc4-12beta2jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

commons-dbcp-14jar

commons-pool-154jar

Entfaumlllt nicht mehr erforderlich Es wird empfohlen diese zu entfernen falls diese im LIB-Verzeichnis vorhanden sein sollten

Erwartet wird stattdessen ab Tomcat7 die mitgelieferte bdquotomcat-jdbcjarldquo

log4j-1216jar (oder houmlher)

Logging-Funktionalitaumlt Apache Log4j httploggingapacheorglog4j12downloadhtml

bcprov-jdk15on-153jar (oder houmlher)

BouncyCastle Security Provider fuumlr SSLAES hellip wird ab Version 27 im Ordner bdquolibldquo des Tomcat erwartet Sollte es aus Sicherheitsgruumlnden erwuumlnscht sein eine aktuellere Version einzusetzen ist dieses idR moumlglich

httpmvnrepositorycomartifactorgbouncycastlebcprov-jdk15on153

24 Datenbank-Installation

Der Schnittstellen-Server benoumltigt auszligerhalb des angebundenen BALVI iP keine eigenen

Tabellen Die Web-Anwendung kann im einfachsten Fall direkt auf das Schema von BALVI iP

zugreifen indem der User und das Passwort des BALVI iP-Schemas in der Contextxml

eingetragen werden (nicht empfohlen)

Sollte dieses aus Sicherheitsgruumlnden nicht erwuumlnscht sein (empfohlen vom BSI und BALVI)

finden Sie im Paket ein GRANT-Skript um Zugriffsrechte vom BALVI iP Schema fuumlr den

Webservice-Schema-User einzurichten

Zwischen dem Schema von BALVI iP und jeder Web-Anwendung ist dann eine Trennung

moumlglich um sicherzustellen dass der Datenbank-Benutzer welcher in der Tomcat-

Konfiguration fuumlr die Web-Anwendung eingetragen wird geaumlndert oder geloumlscht werden

kann ohne dass die Windows-Anwendung BALVI iP davon betroffen ist Zudem vergibt das

von BALVI gelieferte Grant-Skript keine Rechte zum Loumlschen von Tabellenstrukturen oder

Tabelleninhalten so dass der Webservice nur festgelegte Daten aumlndern oder lesen darf Es

wird empfohlen je Web-Anwendung einen eigenen Datenbank-Benutzer zu vergeben wenn

sie ein BALVI iP mit mehreren Webservices verbinden wollen

Die Moumlglichkeiten im Uumlberblick

1) Sie betreiben den Webservice mit einem eigenstaumlndigen Oracle-Benutzer In diesem

Fall muss das Grant-Skript ausgefuumlhrt werden um den Webservice-Benutzer und

BALVI iP-Benutzer zu koppeln

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 12: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1232

2) In der Tomcat-Konfiguration wird der Oracle-Benutzer eingetragen welcher auch

der BALVI iP Schemabesitzer ist und in der bdquobalviip_conninildquo hinterlegt ist (NICHT

Empfohlen) Der Webservice hat 100 Zugriffsrechte (auch Loumlsch- oder

Aumlnderungsrechte am Schema) es wird kein Grant-Skript benoumltigt

Wenn Sie die Konfiguration 2) waumlhlen moumlchten koumlnnen Sie die folgenden Unterkapitel

uumlberspringen und in Kapitel 0 bzw fortsetzen

241 Erstinstallation Datenbank-User anlegen

Wenn Sie den Webservice-User vom BALVI iP Schema trennen moumlchten muss durch die DB-

Administration in der Oracle-Server-Instanz wo auch BALVI iP sein Schema besitzt ein User

(ggf je Web-Anwendung) angelegt werden welcher folgende Rechte benoumltigt

CONNECT

ALTER SESSION

CREATE JOB

CREATE PROCEDURE

CREATE SESSION

CREATE TABLE

CREATE TRIGGER

CREATE TYPE

CREATE VIEW

CREATE SEQUENCE

CREATE SYNONYM

QUERY REWRITE

Der Default-Tablespace ist frei waumlhlbar Der User braucht das Recht QUOTA UNLIMITED auf

den Tablespace von BALVI iP (Default BALVI_IP) Ein Beispiel-Create-Skript

bdquooraCreate_WEB_Usersqlldquo liegt der Auslieferung bei

242 Rechte zuweisen

Wenn der BALVI iP Schemabesitzer NICHT in der Tomcat-Umgebung eingetragen werden

soll muss ein Oracle DBA das beiliegende GRANT-Skript bdquooraGrantIP_to_Websqlldquo

ausfuumlhren um dem jeweiligen Webservice (in Tomcat verwendeten Oracle-User) die

minimalen Rechte auf das Schema von BALVI iP zu gewaumlhren

Dieses Skript setzt voraus dass es von einem Oracle Administrator als User SYSTEM

ausgefuumlhrt wird Lesen Sie die im Skript enthaltene README-Kommentare und passen Sie die

User (BALVI iP Schema) und (WEB-Schema) an

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMABESITZER

sUserBALVI_WEB = BALVI_WEB_SCHEMABESITZER

Neu ab Grant-Skript 158 ist die Umbenennung der Verfahrenszuordnung

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 13: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1332

Pruumlfen Sie dass die Einstellung fuumlr Ihr BundeslandVerfahren korrekt ist dort muss eine 1

fuumlr min ein Verfahren gesetzt sein Diese Einstellung befindet sich direkt unter den

Schemabesitzer-Angaben

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

Fuumlhren Sie das Skript nach der Anpassung als User SYSTEM aus um die Grants

durchzufuumlhren Dieses wurde mit dem von ORACLE gelieferten Programm SQLPLUS

(Command-Line) SQLPLUS Worksheet (GUI) und Oracle SQL-Developer getestet

Das Skript generiert fuumlr jedes Objekt ein SYNONYM fuumlr den WEB-USER so dass dieser auf die

Objekte ohne Angabe des Owners des IP-Schemas zugreifen kann Pruumlfen Sie nach der

Ausfuumlhrung dass die SYNONYMS vorhanden und VALID sind dieses kann ggf nicht der Fall

sein Das Skript kann jederzeit erneut ausgefuumlhrt werden um die Grants neu zu erzeugen

und bietet ebenfalls die Option alle Grants und Synonyme wieder zu entfernen Detaillierte

Informationen zur Nutzung des Skripts sind als Kommentar-Block im Skript enthalten

Hinweis Die Versionsinformation ist unter den Kommentaren direkt im Skript zu finden

Zugriffsberechtigungen fuumlr Webanwendungen auf BALVI iP anlegen

===============================================================

Version 158

Guumlltig fuumlr BALVI iP 123 oder houmlher

Autor Frank Holler

SVN Revisionsinformationen

$Revision 479 $

$Date 2016-02-15 152755 +0100 (Mo 15 Feb 2016) $

================================================================

243 Wann ist die Ausfuumlhrung des Grant-Skripts erforderlich

Durch das Strukturupdate von BALVI iP (zB 1240 auf 1241) werden veraltete Strukturen

geloumlscht und ggf neue Views oder Tabellen angelegt Die Grant-Rechte geht dabei ggf

verloren Daher ist die Ausfuumlhrung des Grant-Skripts immer dann erforderlich wenn sich die

Datenbank-Struktur von BALVI iP veraumlndert

Zudem kann es fachliche Neuerungen geben welche im alten Grant-Skript nicht vorhanden

sind Daher muss das Skript ggf auch ausgefuumlhrt werden wenn eine neue Schnittstelle im

Schnittstellenserver bereitgestellt wurde Dieses betrifft zB auch die Bereitstellung von

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 14: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1432

neuen Versionen von BALVI mobil XT da auch dort mit einem fachlich erweiterten Client

die Moumlglichkeit besteht dass neue Schnittstellen bereitgestellt und somit mehr

Schreibrechte auf Tabellen benoumltigt werden

244 Welche Version des Grant-Skripts soll ich nehmen

Wie der Schnittstellenserver sind auch die Grant-Skripte versioniert Neuere Versionen des

Grant-Skriptes sind abwaumlrts-kompatibel und koumlnnen immer verwendet werden auch wenn

in einer Schnittstellenbeschreibung eine aumlltere Version des Grant-Skriptes explizit benannt

wurde

245 Kombination von mehreren Verfahren

Wenn Sie zwei oder mehr Schnittstellen im BSS verwenden moumlchten ist es ggf erforderlich

auch mehrere Verfahren auf aktiv ( 1 ) zu setzen

Im Beispiel nehmen wir an Sie moumlchten bdquoeFildquo und bdquoBALVI Mobil XTldquo im Schnittstellenserver

bereitstellen In der Beschreibung von bdquoeFildquo steht dass das Grant-Skript V36 erforderlich

ist BALVI Mobil XT 18 erfordert jedoch schon V56

Wenn Sie beide Verfahren betreiben ist im Grant-Skript (V56 oder houmlher) die Einstellung fuumlr

beide Verfahren zu aktivieren

==================================================== DEKLARATIVER TEIL MUSS vom KUNDEN geaumlndert

bzw auf die korrekten SCHEMA-Namen angepasst

werden

Die USER-Namen muumlssen in Groszligbuchstaben

geschrieben sein sonst werden sie nicht

gefunden

====================================================

sUserBALVI_IP = BALVI_IP_SCHEMA

sUserBALVI_WEB = WEBAPP_SCHEMA

-- Verfahrensbezogene Konfiguration

-- Setzen Sie fuumlr das jeweilige Verfahren eine 1

-- BALVI Schnittstellenserver (BSS)

-- bis V266 auch BALVI Kommunikationsserver (BKS) genannt

-- generell fuumlr die meisten Verfahren guumlltig

-- Ab Version 57 entfaumlllt mit der Einfuumlhrung der

-- Schnittstelle XGewerbeanzeigen auch der separate Schalter

-- WS_BTR beide Verfahren wurden vereinheitlicht

WS_BSS = 1

-- WebService BTR (Betriebsstaumlttenregister) (NRW TH)

-- entfernt mit Update V57 setzen sie stattdessen bei WS_BSS = 1

--WS_BTR = 0

-- Probenahme Futtermittel im Browser(BY)

WS_PROBE_FM = 0

-- Risikoorientierte Probenplanung Futtermittel ndash RIOPP FM (BY)

WS_RIOPP_FM = 0

-- Verfahren Export an EFi (Status Pilotbetrieb)

WS_EFI = 1

-- neu ab Version 35 des Grant-Skriptes ist die Moumlglichkeit den Webuser

-- fuumlr das Loumlschen der Ausgangskoumlrbe explizit zu berechtigen bzw sogar einen

-- expliziten abweichenden User festzulegen Die Konfiguration in der

-- Job-Oberflaumlche sieht vordass man die Oracle-Datenbank-Zugangsdaten fuumlr

-- das Loumlschen einstellen muss Hier muss im Normalfall derselbe Oracle

-- Datenbankbenutzer eingetragen werden wie in der Tomcat-Verbindungs-

-- konfigurationIn diesem Fall sollte wenn WS_EFI = 1 eingestellt wurde

-- ebenfalls WS_EFI_DELETE = 1 eingestellt werden

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 15: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1532

-- Alternativen

-- 1) Datenbank-Benutzer aumlndern

-- Wenn bei sUserEFI_TRUNC anstatt sUserBALVI_WEB (Standard) ein anderer

-- Oracle-Benutzername angegeben wird wird das Loumlschrecht fuumlr die EFi

-- Ausgangskoumlrbe Datenbankseitig exklusiv dem angegeben Datenbankbenutzer

-- zugewiesen

-- 2) Loumlschrecht verweigern

-- Setzen Sie die Variablen WS_EFI_DELETE = 0 damit kein Loumlschrecht

-- zugeweisen wird

WS_EFI_DELETE = 0

-- Beispiel Anderer Benutzer muss in der Datenbank existieren

-- Entfernen Sie die fuumlhrenden -- vor der Variable sUserEFI_TRUNC und

-- setzen den entsprechenden Oracle-Benutzer ein

--sUserEFI_TRUNC = TEST_EFI_TRUNC

hellip

25 Konfiguration des Schnittstellen-Servers

251 Die bdquocontextxmlldquo-Parameter

Die von der Servlet-Spezifikation vorgegeben Rump-Struktur sieht folgendermaszligen aus

ltxml version=10 encoding=utf-8gt

ltDOCTYPE Contextgt

ltContextgt

lt-- Kundenspezifische Einstellungen --gt

ltContextgt

Anwendungsspezifische Einstellungen werden zwischen ltContextgt und ltContextgt

eingefuumlgt Alle allgemeinguumlltigen Einstellungen in der bdquoContextxmlldquo werden hier erlaumlutert

Kommentare finden sich auch in der von BALVI ausgelieferten Beispiel-Konfiguration

Neben den im Folgenden beschriebenen Standard-Einstellungen kann es auch vorkommen

dass bundeslandspezifische Erweiterungen vorhanden sind welche nicht in dieser

Dokumentation aufgefuumlhrt werden Diese funktionieren trotzdem regulaumlr weiter wenn

keine expliziten Informationen zu Kompatibilitaumltsproblemen in den Release-Notes

aufgefuumlhrt wurden

2511 Datenbankverbindung jdbcDataSource

Die Datenbankverbindung wird uumlber die von DBCP und dem Oracle-Treiber vorgegeben

Moumlglichkeiten realisiert Aufgrund von Inkompatibilitaumlten von

orgapachecommonsdbcpBasicDataSourceFactory (commons-dbcp-14) mit Java 8 wurde

diese entfernt Folgende DBCP V4-Kompatiblen Datasource-Factorys wurden getestet

orgapachetomcatjdbcpoolDataSourceFactory (Apache Tomcat 7 tomcat-dbcp)

Beispiel-Konfiguration mit orgapachetomcatjdbcpoolDataSourceFactory

ltResource

name=jdbcDataSource

auth=Container

type=javaxsqlDataSource

factory=orgapachetomcatjdbcpoolDataSourceFactory

maxActive=10 initialSize=3

maxIdle=5

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 16: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1632

maxWait=10000

url=jdbcoraclethinBL2-ORA10-KUNDENBALVIINTERN1521ORCL

driverClassName=oraclejdbcdriverOracleDriver

username=test_he_webm

password=12345

description=Oracle Datasource Hibernate

maxOpenPreparedStatements=50

removeAbandoned=false

removeAbandonedTimeout=100

logAbandoned=true

jdbcInterceptors=hellip

gt

Hinweise zur Einstellung der jdbcDataSource

Standard-Einstellungen fuumlr den Datenbank-Verbindungspool

Der Verbindungspool muss entsprechend der zu erwartenden gleichzeitigen Benutzeranzahl

konfiguriert werden Wenn Sie erwarten dass 50 Anwender gleichzeitig arbeiten stellen Sie

bitte folgende Werte ein

maxActive=(50 + 10 (fuumlr System und Jobs)) = 60

maxIdle= (50 10) = 5

1) maxActive - max Anzahl der gleichzeitigen aktiven Anfragen an die DB

Wenn das maxActive erreicht ist zB wenn mehrere Benutzer gleichzeitig einen Export

starten moumlchten welcher laumlngere Zeit in Anspruch nimmt dann kann der Server die

Anfrage nicht mehr bedienen und der Anwender wird abgewiesen

maxActive hat zudem Auswirkungen auf die im Hintergrund ausgefuumlhrten Jobs

maxActive wird daher kalkuliert mit der Anzahl der Anwender und moumlglicher

Datenbank-Connections fuumlr Hintergrund-Jobs Jeder aktiv ausgefuumlhrte Job benoumltigt

min eine Connection nur selten wird aus Performance-Gruumlnden mehr als eine

Connection waumlhrend der Job-Ausfuumlhrung verwendet Im Normalfall sollten daher 10

Connections fuumlr Hintergrundprozesse ausreichend sein

2) maxIdle - Anzahl der offenen Verbindungen auch wenn der Server im Leerlauf ist

Jede offene Verbindung im Leerlauf haumllt auf dem Datenbanserver eine Session offen

Auch diese erfordert Ressourcen Wenn die Verbindungen jedoch geschlossen werden

kann die Anfragezeit fuumlr eine neue Verbindung steigen da die Verbindung erst neu

ausgehandelt werden muss Die Empfehlung fuumlr maxIdle ist ca 10 der Einstellung von

maxActive

KeepAlive-Einstellungen fuumlr den Pool

1) validationQuery

Diese wird ausgefuumlhrt um die Verbindung zu DB zu validieren Es MUSS ein Datensatz

zuruumlckgegeben werden ansonsten nimmt der DBCP an dass die Abfrage nicht

erfolgreich abgesetzt wurde Achten Sie also bitte darauf dass die Abfrage nicht zu

Leitungsintensiv ist und genau einen Datensatz liefert

Oracle bietet dafuumlr die virtuelle Tabelle DUAL an welche sich fuumlr die ValidationQuery

sehr gut eignet da die Abfrage kaum Ressourcen verbraucht

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 17: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1732

validationQuery=select 1 from dual

2) testOnBorrow - Boolscher Wert true oder false

Diese Einstellung sorgt dafuumlr dass der Pool die Verfuumlgbarkeit anhand der

validationQuery pruumlft bevor die DB-Verbindung an die Anwendung ausgeliehen wird

Empfehlung

testOnBorrow=true

3) testWhileIdle - Boolscher Wert true oder false

Diese Einstellung ist hilfreich wenn zwischen dem Tomcat und der DB eine Firewall mit

Stateful Packet Insprection verwendet wird Nach laumlngerer Inaktivitaumlt wird

normalerweise durch die Firewall die DB-Verbindung geschlossen Dieses loumlst dann beim

Ausleihen der Verbindung eine Fehlermeldung im Protokoll aus

2012-08-16 165418720 WARN [http-0000-8080-8]

[orgspringframeworkjdbcsupportSQLErrorCodesFactory] Error while

extracting database product name - falling back to empty error codes

orgspringframeworkjdbcsupportMetaDataAccessException Error while

extracting DatabaseMetaData nested exception is

javasqlSQLRecoverableException Getrennte Verbindung

Um dieses Problem zu beheben sollte die Option testWhileIdle=true eingestellt

werden

testWhileIdle=true

Damit diese weiszlig wie oft eine Pruumlfung durchgefuumlhrt werden muss sind jedoch noch

zusaumltzliche Angaben erforderlich welche fuumlr die Einstellung der Zeit zusaumltzlich gesetzt

werden muumlssen

a minEvictableIdleTimeMillis - Long in Millisekunden

Min Zeit wie lange eine DB-Verbindung im Leerlauf ist bevor diese zur

Pruumlfung gekennzeichnet wird Dieses haumlngt stark von der Einstellung der

Firewall ab Wenn Sie eine sehr restriktive Firewall haben kann es sein dass

diese die Verbindung nach wenigen Minuten Leerlauf trennt Stellen Sie den

Wert immer so ein dass dieser unter der Leerlaufzeit der Firewall liegt

empfohlen 300000 entspricht 300 Sek = 5 min

minEvictableIdleTimeMillis=300000

b timeBetweenEvictionRunsMillis - Long in Millisekunden

Der Pruumlflauf startet in der Default-Konfiguration alle 1800000 Millisekunden =

30 Min n als zu Pruumlfen markierten Verbindungen werden in einem Pruumlflauf

getestet n wird bestimmt durch die Einstellung numTestsPerEvictionRun

Empfehlung Stellen Sie den Wert auf alle 15 Min ein

timeBetweenEvictionRunsMillis=900000

c numTestsPerEvictionRun - Integer

Wie viele Verbindungen sollen getestet werden waumlhrend der Pruumlflauf

ausgefuumlhrt wird Im Normalfall sollte die Anzahl der zu testenden Verbindungen

nicht zu hoch eingestellt werden Der Default ist 3 Wenn Sie houmlhere Sicherheit

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 18: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1832

haben wollen dass keine bdquototenldquo Datenbankverbindungen bestehen bleiben

erhoumlhen Sie den Wert auf max bdquo(maxActive ndash maxIdle) 2ldquo Wenn Ihnen 3

ausreichend erscheint muss der Wert nicht gesetzt sein dann wird der Default

verwendet

Beispiel numTestsPerEvictionRun=10

Optionale DEBUG-Einstellungen fuumlr den Datenbank-Verbindungspool wenn Sie als Factory

orgapachetomcatjdbcpoolDataSourceFactory verwenden

Der bdquoStatementFinalizerldquo sollte dafuumlr sorgen dass eine Fehlermeldung im Protokoll

catalinaout auflaumluft wenn eine Connection nicht sauber an den Pool zuruumlckgegeben wird

und gleichzeitig logAbandoned aktiviert wurde

Umsetzung

Fuumlgen Sie die folgenden Parameter in der DataSource hinzu

removeAbandoned=true

removeAbandonedTimeout=3600

logAbandoned=true

testOnReturn=true

jdbcInterceptors=orgapachetomcatjdbcpoolinterceptorConnectionS

tate orgapachetomcatjdbcpoolinterceptorStatementFinalizer

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 19: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

1932

2512 Datenbank-Zugangsdaten verschluumlsseln

Die Verschluumlsselung fuumlr die Datenbank-Verbindung (bdquoEncrypted Datasourceldquo) ist eine

Ableitung der Bibliothek Apache-Common-DBCP-14 und daher nicht mehr mit Java 8

kompatibel Die Einrichtung der Verschluumlsselung wird daher mit der Auslieferung des BSS 30

nicht mehr angeboten

2513 Active-Directory-Authentifizierung

Uumlber die folgenden Parameter wird der Zugriff des Schnittstellen-Servers auf einen

Microsoft Active Directory Domain-Controller konfiguriert

ldquoldapServerAddressrdquo

Syntax PROTOKOLLIP-Adresse oder DNS-NamePORT

ltEnvironment

name=ldapServerAddress

value=ldapbl2-dc02balviintern389

type=javalangString

override=true

gt

Als Protokoll besteht auch die Moumlglichkeit ldaps (LDAP+SSL) wenn der Domain-Controller

entsprechend konfiguriert wurde Im Java Truststore muss dann das Zertifikat der CA

vorhanden sein welche das Zertifikat des Domain-Controller signiert hat Zudem darf bei

ldaps keine IP-Adresse verwendet werden es muss der DNS-Name des Server-Zertifikats

eingetragen sein Ansonsten gibt es beim Verbinden eine Sicherheits-Exception

lt-- SSL-Beispiel

ltEnvironment

name=ldapServerAddress

value=ldapsbl2-dc02balviintern636

type=javalangString

override=true

gt

--gt

bdquoldapBaseDnrdquo

LDAP-Suchpfad fuumlr die Domain-Basis Diese muss der LDAP-Syntax fuumlr den Domain-Suffix

entsprechen

Syntax DC=SERVERDC=ROOTDN

ltEnvironment

name=ldapBaseDn

value=DC=BALVIDC=INTERN

type=javalangString

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 20: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2032

bdquowebLoginUseActiveDirectoryAuthenticationrdquo

Die Authentifizierung in der Browser-Oberflaumlche kann uumlber die Active-Directory-

Authentifizierung erfolgen In der ersten Version ist nur die Protokoll-Auswertung moumlglich

wenn der ADMIN sich anmeldet Dieser hat normalerweise niemals AD-Kennungen

zugeordnet Es wird von BALVI empfohlen diese Einstellung auf bdquofalseldquo zu belassen

Webservices welche uumlber SOAPREST zugreifen koumlnnen die Active-Directory-

Authentifizierung trotzdem verwenden

ltEnvironment

name=webLoginUseActiveDirectoryAuthentication

value=false

type=javalangBoolean

override=true

gt

ldquoldapDaysBeforeExpirationNotificationrdquo

Die Passwort-Aumlnderung im Active-Directory uumlber die Browser-Oberflaumlche ist in der ersten

Version noch nicht implementiert der Parameter wird bislang nicht ausgewertet

ltEnvironment

name=ldapDaysBeforeExpirationNotification

value=14

type=javalangInteger

override=true

gt

2514 Statement-Protokollierung in BALVI iP

Diese Option aktiviert die Lese- und Aumlnderungsprotokollierung fuumlr BALVI iP Standard ist

bdquofalseldquo und wird fuumlr alle Kunden empfohlen solange keine speziellen Datenbank-Jobs

eingerichtet wurden welche zeitgesteuert die Protokolleintraumlge wieder loumlschen Fuumlr Bayern

wurde ein spezielles Konzept zur Leseprotokollierung entworfen Wenn Sie mehr daruumlber

erfahren moumlchten kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=enableSqlStatementMonitoring

value=true

type=javalangBoolean

override=true

gt

Beachten Sie dass diese Option massive INSERT-Statements in BALVI iP in die Tabelle

VIS_D92 ausfuumlhrt Jedes abgesetzte SQL-Statement wird dabei vollstaumlndig protokolliert

Dieses erzeugt eine sehr hohe INSERT-Last und in der Folge auch erhoumlhte Redolog-Switches

und COMMIT-Transaktionen

Optional Aktivieren der INSERT + APPEND - Logik

Beachten Sie bitte die Hinweise von Oracle zum Hint + APPEND

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 21: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2132

Wenn Sie dieses Verhalten aktivieren moumlchten ergaumlnzen Sie bitte den folgenden

Environment-Parameter

ltEnvironment

name=statementMonitoringactivateAppendMode

value=true

type=javalangBoolean

override=true

gt

2515 Einstellungen fuumlr BALVI Mobil XT (bzw den bdquopartitionedExportldquo)

Diese Logik des FIFO-Buffers wurde so konzipiert dass dem Rechenzentrum diverse

Einstellmoumlglichkeiten uumlber die bdquocontextxmlldquo zur Verfuumlgung stehen um die Steuerung des

FIFO-Puffers zu beeinflussen

Schematische Darstellung des FIFO-Puffers

Dieses ermoumlglicht es zB dem BALVI Mobil XT Client (14 oder houmlher) den aktiven Block

abzuholen und beim Fehler dieses bis zu 10-mal zu wiederholen Sobald der Block [001]

erfolgreich beim Client angekommen ist und dieser den naumlchsten Block anfragt wird der

Block [001] verworfen wird Der Server fuumlllt dann im Hintergrund den frei gewordenen Block

wieder waumlhrend der Client den Block [002] abholt

Die Groumlszlige und Anzahl der vorgecachten Bloumlcke kann uumlber die folgenden Einstellungen in der

Contextxml definiert werden

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

Die Einstellung partitionedExportmaxBufferedPartitions ist dabei die Anzahl der

vorgecachten Bloumlcke mindestens muss 2 angegeben werden Der Puffercache wird

ausschlieszliglich im RAM der JVM aufgebaut es wird folglich mehr Arbeitsspeicher verwendet

Akt

iver

Pu

ffer

[001] Vo

rgec

ach

ter

Blo

ck

[002] Vo

rgec

ach

ter

Blo

ck

[003]

Akt

iver

Pu

ffer

[002] Vo

rgec

ach

ter

Blo

ck

[003] Vo

rgec

ach

ter

Blo

ck

[leer]

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 22: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2232

Dieser Arbeitsspeicher muss je gleichzeitiger Session auf dem Server bereitgestellt werden

die Default-Einstellung mit 3 Partitionen a 256 kB + dem Aktiven Puffer erfordern 1 MB RAM

je aktiven Anwender

Gleichzeitig wurde die Moumlglichkeit geschafften dass die max Anzahl an gleichzeitigen

Exporten durch das Rechenzentrum eingeschraumlnkt werden kann um einem OutOfMemory-

Fehler vorzubeugen Die Einstellung

ltEnvironment

name=partitionedExportmaxConcurrentExports

value=10 type=javalangInteger override=true

gt

muss entsprechend der zu erwartenden gleichzeitigen Zugriffe konzipiert werden

ansonsten wird der Server einen Verbindungsversuch durch die Clients ablehnen

Beachten Sie dass die folgenden Einstellungen partitionedExportmaxBufferedPartitions

partitionedExportmaxConcurrentExports und partitionedExportpartitionSize gemeinsam

als Rechenbasis fuumlr den RAM-Bedarf des Webservers herangezogen werden muumlssen

Folgende Faustformel sollte fuumlr die Einrichtung verwendet werden

Min 256 MB (Serverbasis) + (11 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

256 MB + (11 50 256 4) KB = 312 MB fuumlr die JVM

Empf 512 MB (Serverbasis) + (12 partitionedExportmaxConcurrentExports

partitionedExportmaxBufferedPartitions partitionedExportpartitionSize)

Beispiel 50 gleichzeitige Anwender Blockgroumlszlige 256 KB 4 Partitionen

512 MB + (12 50 256 4) KB = 572 MB fuumlr die JVM

partitionedExportmaxConcurrentExports

Bestimmt die Anzahl der maximalen Export Tasks(Threads) die fuumlr partitionierte Exporte

bereitgestellt werden Wenn die Anzahl uumlberschritten wird wird die entsprechende Export

Anfrage abgewiesen und der Client muss zu einem spaumlteren Zeitpunkt erneut anfragen

Stellen Sie diesen Wert entsprechend der zu erwartenden Useranzahl ein bei 50 Anwendern

also 50

Exporte oumlffnen auf der Datenbank entsprechend zur Ausfuumlhrungszeit min einen Cursor ggf

fuumlr rekursive Unterabfragen kurzfristig sogar mehr Die hier eingestellte Anzahl muss mit

der Anzahl von maxActive korrelieren

ltEnvironment

name=partitionedExportmaxConcurrentExports

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 23: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2332

value=10 type=javalangInteger override=true

gt

partitionedExportmaxBufferedPartitions

Bestimmt die Anzahl der Datenbloumlcke (Partitionen) die vom Server bei Abruf eines Exportes

gepuffert werden Die seit Version 24 eingefuumlhrte FIFO-Buffer-Logik ermoumlglicht dass der

Server schon die Ergebnisse vorpuffert so dass der Client weniger Wartezeiten bei der

Anfrage nach Daten hat Diese Puffer-Logik unterteilt den Expotdatenstrom (je Export) in

mehre Bloumlcke Der Client kann nun den letzten Block neu anfordern oder den naumlchsten

Block wenn der letzte Block erfolgreich verarbeitet wurde Wie viele naumlchste Bloumlcke durch

den Server bereit gestellt werden entscheidet diese Einstellung Sobald kein naumlchster Block

mehr bereit gestellt werden muss wird der Datenbank-Cursor geschlossen eine Erhoumlhung

kann also zu einer Entlastung der aktiven DB-Verbindungen fuumlhren erhoumlht jedoch den

Bedarf an RAM des Servers

Default von BALVI 3

ltEnvironment

name=partitionedExportmaxBufferedPartitions

value=3 type=javalangInteger override=true

gt

partitionedExportpartitionSizeldquo

Die Groumlszlige jedes Blocks (Partitionen) in Bytes die an den Client uumlbermittelt werden Wenn

Sie diese Einstellung zu gering einstellen reduziert sich die Effizienz des Caches da der

Client mehr Bloumlcke hintereinander abrufen muss wenn der Wert zu groszlig gewaumlhlt wird wird

die neu zu uumlbertragende Datenmenge im Fall von Fehlern houmlher

Default von BALVI 256 KB = 256000

ltEnvironment

name=partitionedExportpartitionSize

value=256000 type=javalangInteger override=true

gt

exportTokensmaxTokenCount

Maximale Anzahl der gleichzeitig vergebenen Token die vom Server gecached werden

Jede Sitzung welche einen Export durchfuumlhrt erhaumllt einen Session-Token

Wenn die Sitzung laumlngere Zeit nicht verwendet wurde werden diese Session-Token wieder

entfernt Wenn Sie den Wert zu gering einstellen fuumlhrt dieses zu einer generellen Session-

Begrenzung auch fuumlr den nicht partitionierten Export-Modus welcher ab Version 21

verfuumlgbar ist

Ist die Anzahl der Tokens houmlher als die Datenbankeinstellung maxActive so kann es

vorkommen dass zwar eine Session gestartet werden kann jedoch kein Datenexport

zustande kommt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 24: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2432

Der Default von BALVI ist 2000

ltEnvironment

name=exportTokensmaxTokenCount

value=20 type=javalangInteger override=true

gt

exportTokenstokenExpirationInSeconds

Anzahl der Sekunden nach denen ein Token unguumlltig wird falls darauf kein Zugriff mehr

erfolgt Nach einem erfolgreichen Export wird der Token automatisch geschlossen diese

Option ist fuumlr den Abbruchfall vorgesehen Default von BALVI 180 Sek = 3 Min

ltEnvironment

name=exportTokenstokenExpirationInSeconds

value=180 type=javalangInteger override=true

gt

exportTokenstokenDisposalInSeconds

Anzahl der Sekunden nach denen ein Token das erfolgreich abgearbeitet wurde aus dem

Cache geloumlscht wird Um sicher zu stellen dass der letzte Exportblock noch erfolgreich

abgerufen werden kann bleibt der Token auch nach Fertigmeldung des Clients noch N Sek

guumlltig

Default von BALVI ist 60

ltEnvironment

name=exportTokenstokenDisposalInSeconds

value=60 type=javalangInteger override=true

gt

2516 Job-Verwaltung fuumlr den BSS konfigurieren

Aktivierung der Jobverwaltung

Bis Version 28 gab es den Parameter bdquoavailableServicesldquo Dieser konnte bei Bedarf aktiviert

werden wenn die Jobs benoumltigt wurden

Mit Version 30 ist die Einstellung bdquoavailableServicesldquo ist zu entfernen und kann durch den

neuen optionalen Parameter bdquoisJobServiceEnabledldquo in der Contextxml ersetzt werden

lt-- Neue Paramter zur Aktivierung des Job Service Ersatz fuumlr

availableServices --gt

ltEnvironment

name=isJobServiceEnabled

value=true

type=javalangBoolean

override=true

gt

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 25: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2532

Ab dem BSS 30 wird die Jobs-Engine standardmaumlszligig aktiviert Sollte die Jobs-Engine nicht

benoumltigt werden muss bei bdquovalueldquo der Wert bdquofalseldquo gesetzt werden Wird

bdquoisJobServiceEnabledldquo nicht eingefuumlgt sind die Jobs trotzdem standardmaumlssig aktiv

Nach dem Neustart des Servers und erneutem Einloggen erscheint nun zusaumltzlich der

Menuumlpunkt bdquoJobsldquo

bdquopasswordKeyldquo fuumlr Jobs

In der Job-Logik wird ein von BALVI definierter Standard-Schluumlssel fuumlr die Ablagen von

schuumltzenswerten Daten zB Passwoumlrtern verwendet Diese Einstellung ermoumlglicht den

BALVI-Standard zu uumlberschreiben Wenn Sie diese Einstellung aumlndern muumlssen jedoch alle

bislang verschluumlsselten Job-Parameter neu verschluumlsselt werden

ltEnvironment

name=javacompenvjobspasswordKey

value=MeinHochsicheresNeuesPasswort

type=javalangString

override=true

gt

bdquoJob ID enableddisabledldquo (Deprecated ersetzt ab 28 durch das bdquobindenldquo von Jobs)

Sondereinstellungen fuumlr die Job-Verwaltung Da alle Jobs in einer Datenbank administriert

werden jedoch ggf verteilt auf mehreren Tomcat-Servern ausgefuumlhrt werden sollen

besteht hier die Option Jobs fuumlr die aktuelle Tomcat-Instanz separat zu deaktivieren

Die Einstellung ID koumlnnte zB folgendermaszligen aussehen

javacompenvjobsC0DB58D8D52C4BBC966D1DC788A4EF8Benabled

Fuumlr weitere Fragen zu dieser Einstellung kontaktieren Sie bitte die BALVI GmbH

ltEnvironment

name=javacompenvjobsIDenabled

value=false

type=javalangBoolean

override=true

gt

2517 Weitere optionale Parameter

Es ist fuumlr diverse einzelne Schnittstellen ggf erforderlich Einstellungen in der

bdquocontextxmlldquo zu ergaumlnzen Hinweise zu diesen Parametern sind dann im der Schnittstelle

beiliegenden Dokument enthalten Das gilt zB fuumlr die Schnittstelle bdquoxGewerbeanzeigenldquo

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 26: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2632

26 Logging mit logback

Das Logging wurde komplett uumlberarbeitet statt Log4J wird jetzt logback3 benutzt Ab BSS

30 ist es zwingend notwendig die Einstellung vorzunehmen um das Logging der Anwendung

zu steuern

Migration Ergaumlnzen sie die neue Einstellung bdquologgingconfigldquo

lt-- Neue Paramter zur Angabe der Logback Config Ersatz fuumlr

log4jConfigLocation --gt

ltEnvironment

name=loggingconfig

value=$catalinabaseconflogback-bssxml

type=javalangString

override=true

gt

Wie gehabt steht es dem Kunden frei die Logging-Konfiguration eigenstaumlndig anzupassen

Wenn Sie jedoch dieselbe WAR in einer Tomcat-Instanz unter mehreren Context-Namen

betreiben wuumlrden beide dieselbe Logging-Konfiguration verwenden so dass alle

Protokolleintraumlge in einer Log-Datei aus mehreren Webanwendungen generiert werden

Aumlndern den Namen der Logging-Konfiguration entsprechend ab um je Anwendung eine

spezifische Logging-Einstellung vornehmen zu koumlnnen

27 Tocmat Optional Suche im bdquoKlassenpfadldquo um den Ordner

bdquoconfldquo erweitern

Die Suche nach Dateien uumlber bdquoclasspathldquo setzt voraus dass die Ordner- und Dateinamen im

Tomcat bekannt gegeben werden Der Klassenpfad kann in der catalinaproperties

angepasst werden Wenn Sie dort unter commonloader die folgenden Werte

ergaumlnzen kann eine Datei auch im Ordner conf abgelegt werden damit Tomcat diese

findet Ansonsten muss die Datei im Ordner lib abgelegt werden

commonloader=$catalinabaseconf$catalinahomeconf

3 httplogbackqoschmanualappendershtml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 27: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2732

3 Die neue Browser-Oberflaumlche

Der BALVI Schnittstellen-Server hat seit Version 25 neben der Protokollierung auch die

Moumlglichkeit Job-Konfigurationen zu pflegen Der Login ist nur fuumlr einen in BALVI iP

eingetragenen ADMIN (zB User bdquoSYSTEMADMINldquo) mit dem in BALVI iP hinterlegten

Passwort moumlglich Zur Anmeldung muss immer [SYSTEMBenutzername] im Feld Benutzer

angegeben werden ansonsten schlaumlgt die Anmeldung fehl Bitte achten Sie darauf dass der

bdquoldquo (Slash) und nicht der bdquoldquo (Backslash) verwendet werden muss

31 Server-Protokoll

Um das Server-Protokoll anzuzeigen waumlhlen Sie den entsprechenden Menuumlpunkt

Im Objekt haben Sie seit Version 26 die Moumlglichkeit im Protokoll zu suchen

Verfahren

Die Liste der verfuumlgbaren Verfahren wird derzeit noch uumlberarbeitet Bislang sind folgende

Verfahren verfuumlgbar

MOBILXT Protokolle der BALVI Mobil XT Synchronisation

WEB Allgemeine nicht spezifizierte Protokolle hierunter ist bislang auch die eFi-

Protokollierung zu finden

WEB_I0802 Protokolle zur Schnittstelle BALVI iP LIMS (Lebensmittelproben)

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 28: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2832

Klicken Sie auf die Schaltflaumlche so besteht bei den neuen

Protokolldatensaumltzen die Moumlglichkeit Detail-Informationen zum

Protokollsatz zu erhalten

32 Jobs

Der Menuumlpunkt Jobs ruft die Oberflaumlche fuumlr die Job-Konfiguration auf Hier koumlnnen die Jobs

eingesehen werden die fuumlr den BSS freigegeben sind Verschiedene Einstellungen sind hier

moumlglich zB aktivierendeaktivieren eines Jobs oder Einstellungen fuumlr den Job vornehmen

Die Beschreibungen bzw Einstellungsmoumlglichkeiten fuumlr den jeweiligen SST-Job sind nicht

Bestandteil dieser Dokumentation

33 Log-Ausgaben

Uumlber den entsprechenden Menuumlpunkt Log-Ausgaben koumlnnen sie sich die Ausgabe der Logs

anschauen

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 29: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

2932

Sie koumlnnen hier zB die Logdateien herunterladen Logausgabe anhalten oder uumlber den

Button Logging-Parameter einstellen

In der Logging-Parameter Konfiguration koumlnnen sie verschieden Parameter einstellen und

uumlber den Button Anwenden dann ausfuumlhren lassen

34 LogoutAbmeldung vom System

Zum Abmelden waumlhlen Sie oben rechts das Kontextmenuuml

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 30: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3032

35 Cache loumlschen

Das Loumlschen des Caches passiert in der Regel automatisch Wenn Sie jedoch gerade in BALVI

iP eine Aumlnderung an den Schnittstellen eingespielt haben und moumlchten dass diese sofort

wirksam wird kann die Funktion bdquoCache loumlschenldquo dazu verwendet werden dass der

Kommunikationsserver die Einstellungen bei der naumlchsten Anfrage neu einliest

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 31: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3132

4 Einrichtung in BALVI iP

Um die Verfahren fuumlr den BALVI Schnittstellenserver fuumlr Anwender freizuschalten wird das

Objekt bdquoSystemeinstellungenldquo oder bdquoMandanten- und Benutzereinstellungenldquo verwendet

Die Anpassung ist je Verfahren moumlglich so kann in BALVI iP fuumlr den Zugriff durch den BALVI

Kommunikationsserver einen Benutzer bdquoAldquo am Verfahren bdquoMobilldquo berechtigt werden ein

Benutzer bdquoBldquo nur am Verfahren bdquoSLA_FLESHldquo usw Die Logik ist jedoch Einheitlich Je

Verfahren wird durch BALVI eine Verfahrensgruppe mit dem Verfahrensnamen angelegt und

mit den entsprechenden Einstellungen vorkonfiguriert welche durch das Verfahren

erforderlich sind Dabei kann die Komplexitaumlt der Einstellungen variieren wie zB an den

zu Version 23 verfuumlgbaren Verfahren bdquoMobilldquo und bdquoSLA_Fleshldquo ersichtlich wird

Im Verfahren BALVI Mobil sind diverse Anpassungen moumlglich welche je Bundesland oder

eingesetzter Import- und Export-Variante durch den BALVI Schnittstellenserver bei der

Bearbeitung von Anfragen gepruumlft werden siehe Punkt 3 Abb Mobil-Einstellung in iP

Abb Mobil-Einstellung in iP

Alle Verfahren verwenden jedoch die regulaumlre Benutzerverwaltung von BALVI iP Ein

Benutzer ohne Passwort gilt fuumlr BALVI iP als gesperrt was fuumlr den Login bedeutet dass der

Anwender sich nur uumlber die Active-Directory-Authentifizierung anmelden kann Ist dieses

nicht moumlglich (bzw nicht konfiguriert) kann der Anwender sich weder in BALVI iP noch

uumlber die Webservice-Schnittstelle authentifizieren

Fuumlr Dienste-Schnittstellen welche keine persoumlnliche Authentifizierung durch einen

Anwender erfordern wird empfohlen einen separaten Benutzer in der Benutzerverwaltung

anzulegen und ein sicheres Kennwort zu vergeben Das Anlegen von zusaumltzlichen Benutzern

gilt nicht fuumlr BALVI Mobil XT da beim Holen und Uumlbermitteln von Daten jeder Benutzer

auch ein fachlich konfigurierter Anwender innerhalb von BALVI iP ist und die

Anwendungsoberflaumlche ebenfalls zur Erfassung von Daten verwendet

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich

Page 32: Releasenotes BALVI Schnittstellenserver€¦ · 2.5.1 Die „context.xml“-Parameter ... Zu BSS 3.0 wurde auf eine neue Logging-Klasse umgestellt ... Probenplänen aus dem Modul

copy BALVI GmbH

Releasenotes BALVI Schnittstellenserver

3232

Unter Punkt 2 der Abb Mobil-Einstellung in iP wird ein modales Fenster geoumlffnet(Abb

Mobil Benutzerverwaltung iP) Innerhalb dieses modalen Fensters werden mandantenweise

die Benutzer fuumlr BALVI Mobil und Fachbereich festgelegt Wichtig dabei das man die Haken

fuumlr Mobil und eine Fachbereich setzt weil sonst keine Kommunikation mit BALVI iP uumlber den

Schnittstellenserver moumlglich ist

Abb Mobil Benutzerverwaltung iP

Alternativ zur Passwort-Authentifizierung wird wie beschrieben auch die Active-Directory-

Authentifizierung angeboten Dazu muss der BALVI iP-Anwender uumlber die Schaltflaumlche

bdquoDomaumlnen-Benutzer zuordnenldquo mit dem Active Directory verknuumlpft werden

Nur wenn in BALVI iP und dem Kommunikationsserver die Active-Directory-Konfiguration

identisch auf dieselbe Domaumlne verweist ist die Domaumlnen-Zuordnung und die Active-

Directory-Authentifizierung (zB uumlber BALVI Mobil XT) moumlglich