Installation

Vorbereitung

  • Docker installieren
  • Um ordnungsgemäß zu funktionieren, sollte der Docker Engine mindestens 4GB Arbeitsspeicher zugewiesen werden.
    Docker Desktop -> Settings -> Resources -> Advanced
  • Wenn Docker mit WSL2 läuft, wird der Speicher automatisch zugewiesen -> Link
  • Falls Docker dann zu viel Speicher verbraucht, kann der Speicherverbrauch limitiert werden -> Link
  • Das docker-service-environment Repo im GitLab liefert vorkonfigurierte Umgebung aller Services der Archivlösung aus, dessen Konfiguration nur noch entsprechend des eigenen Systems angepasst werden muss. Dieses kann gerne bei uns angefragt werden.
  • SFTP-Server installieren/bereitstellen (Beispiel: Rebex Tiny SFTP Server)

Konfiguration der Archivierung

Die einzelnen Komponenten werden über die applicaton.yml Datein im entsprechenden config Ordner konfiguriert. Welche Einstellungen im Speziellen vorgenommen werden können ist unter der entsprechenden Seite der Dokumentation beschrieben. Der Großteil der Konfiguration wird allerdings über die .env Datei festgelegt und während des Startprozesses auf die einzelnen Services übertragen.

Konfiguration der globalen Archivierungsparameter in .env

docker

  • COMPOSE_PROJECT_NAME Projektname der docker-compose
  • VERSION Version der Microservices

starter-service

  • PERIOD_FROM Anfang der zu archivierenden Zeitspanne (yyyy-MM-dd hh:mm:ss)
  • PERIOD_TO Ende der zu archivierenden Zeitspanne (yyyy-MM-dd hh:mm:ss)

data-loader

  • ATTRIBUTE_IDS komma-separierte zu archivierende Attribut Ids. Beispiele im Mail-Kontext:
Name des Attributs Verwendung
SECURITY_SERVER_PROTOCOL FSS Protokoll zur Verschlüsselung/Signierung
B3P_SECURE_MIME_MSG_MAIN Ausgehende verschlüsselte Mail
B3P_MIME_MSG_MAIN Ein/ausgehende Mail (je nicht verschlüsselt)
B3P_MIME_MSG_MAIN_ORIG Eingehende (ggf. verschlüsselte) Mail
B3P_MIME_MSG_CONTRL Ausgehende (noch) nicht verschlüsselte CONTRL Mail

b2b database

  • DATABASE_DRIVER_CLASS_NAME Klassenname des Datenbanktreibers (Bsp.: org.apache.derby.jdbc.ClientDriver für Derby Datenbanken)
  • DATABASE_URL URL der Datenbank
  • DATABASE_USER User für den Datenbankzugang
  • DATABASE_PASSWORD Passwort für den Datenbankzugang

sftp archive

  • SFTP_HOST IP-Adresse des SFTP Servers
  • SFTP_PORT SFTP Server Port
  • SFTP_USER Server User
  • SFTP_PASSWORD Server Passwort
  • SFTP_PRIVATE_KEY SSH Key für den SFTP Server
  • SFTP_DIRECTORY Archivverzeichnis auf dem Server

rabbitmq

Hier müssen in der Regel keine Einstellungen vorgenommen werden. User und Passwort wird bereits über die config/rabbitmq/definitions.json festgelegt, diese Werte müssen übereinstimmen.

  • RABBITMQ_HOST Host Adresse (default: rabbitmq)
  • RABBITMQ_PORT MessageQueue Port (default: 5672)
  • RABBITMQ_USER User für die MessageQueue (siehe config/rabbitmq/definitions.json)
  • RABBITMQ_PASSWORD Passwort für die MessageQueue (siehe config/rabbitmq/definitions.json)

elasticsearch

Wird keine externe Elasticsearchinstanz verwendet können auch hier die Standartwerte verwendet werden. Über das Feld INDEX_NAME wird der Name des Archivs innerhalt von Elasticsearch konfiguriert.

  • ELASTICSEARCH_HOST Host adresse (default: elasticsearch)
  • ELASTICSEARCH_HTTP_PORT Host http port (default: 9200)
  • ELASTICSEARCH_PORT Host port (default: 9300)
  • CLUSTER_NAME Index Cluster
  • NODE_NAME Node Name
  • INDEX_NAME Name des Indexes (default: archive)

Konfiguration B2B zur Suche im Archivsystem

Damit die B2B die Archiv-Searcher Services zur Suche im Archiv verwendet, muss der entsprechende B2B Archivadapter an den folgenden drei drei GlobalProperties konfiguriert werden:

Eigenschaft Wert
B3P_ARCHIVE_MESSAGE_MONITOR_IMPL org.b2bbp.administration.monitoring.ArchiveMessageMonitorServiceCaller
B3P_ARCHIVE_AS2_MESSAGE_MONITOR_IMPL org.b2bbp.administration.monitoring.ArchiveMessageMonitorServiceCaller
B3P_ARCHIVE_MONITOR_IMPL org.b2bbp.administration.monitoring.ArchiveMessageMonitorServiceCaller

Die Konfigurationen zur Anbindung des Archiv-Searcher und Archiv-Index-Searcher Services werden in der B2B Extension ARCHIVE_CALLER_CONFIGURATION vorgenommen. Darin müssen die Properties analog zu den folgenden Beispielen konfiguriert werden:

ARCHIVE_INDEX_URL=http://host.docker.internal:8280
ARCHIVE_INDEX_PATH_GET_MESSAGE_BY_FILTER=/message
ARCHIVE_INDEX_PATH_GET_COUNT_BY_FILTER=/messagecount

ARCHIVE_FILE_URL=http://host.docker.internal:8180
ARCHIVE_FILE_PATH_GET_MESSAGE_BY_ARCHIVE_ID=/archive
MAIL_ATTRIBUTE_ARCHIVE_FIELD=B3P_MIME_MSG_MAIN

Um eine fehlerfreie Archivsuche in der NUI zu gewährleisten, muss die Extension SEARCH_LAYER_CONFIGURATION ggf. um folgende Werte erweitert werden:

SEARCH_TYPES=ARCHIVE,...
ARCHIVE_PATH=/usr/local/tomcat/tomcat_all/index/archive

Das im ARCHIVE_PATH angegebene Verzeichnis muss manuell erstellt werden.

Start der Archivkomponenten

Die B2B Datenbank und der SFTP Server müssen laufen und erreichbar sein, andernfalls ist die docker-compose.yml nicht ausführbar.

  • Docker hat genug RAM
  • B2B Datenbank läuft und hat alle notwendigen Tabellen
  • SFTP Server läuft und ist konfiguriert
  • Alle Zugänge und Ports sind richtig konfiguriert
  • Wichtig: Unter config/data-loader und config/finish-service müssen die .jar Datein der Datenbanktreiber liegen, diese werden später auf den Servicecontainer kopiert um die entsprechende Funktionalität bereit zu stellen.

Befehl: docker-compose up

Ausführung der Archivierung durch den Start des starter-service

Der starter-service wird über eine separate docker-compose-starter-service.yml gestartet. Dessen Ausführung triggert erst den Archivierungsprozess für den konfigurierten Nachrichtenzeitraum.

Konfigurationen werden über die allgemeine .env vorgenommen, insbesondere der zu archivierende Nachrichten-Zeitraum.

Befehl: docker-compose -f docker-compose-starter-service.yml up

Skalierung der Archivierung

Durch das Starten mehrerer gleicher Services können die Schritte dieser Archivierung einfach skaliert werden. Die Anzahl der einzelnen Services (zunächst ausgenommen RabbitMQ und Elasticsearch) der Lösung kann so nach Bedarf angepasst werden, indem die Anzahl der Serviceinstanzen im Startbefehl mitgegeben wird. Beispiel:

  • docker-compose up --scale data-loader=3 --scale archive-writer=2 startet drei Instanzen des data-loaders und zwei Instanzen des archive-writers. Die Namen der Services entsprechen denen der docker-compose.yml und werden nummeriert z.B. data-loader_1.

Wichtige Befehle

View Me   Edit Me