Erklärung des Knotennamens und der Knotennummer

Die B2B wird oft mit mehreren Knoten betrieben. Aktive Services können somit auf unterschiedliche Knoten verteilt werden. Der eine Knoten kann zum Beispiel für die UI zuständig sein, und keine Services ausführen. Ein anderer Knoten kann für die Nachrichtenverarbeitung zuständig sein, auf ihm wird der QueueService laufen. Die Knoten können auch auf unterschiedlichen Maschinen laufen.

Knotennummern vergeben

Um die Knoten voneinander zu unterscheiden, vergibt man jedem Knoten eine eigene Nummer. Beim erstmaligen Start eines Knotens legt er selbstständig eine Global Property an, die etwa so aussieht:

Name Wert
usrlocaltomcatwebappsb2bbp-engine 99,LAST STARTED AT: 16.11.2023 at 16:41:10

Der Name der Global Property ist der Knotenname (hier usrlocaltomcatwebappsb2bbp-engine) und die erste Zahl im Wert ist die Nummer des Knoten (hier 99). Die Nummer wird am Anfang automatisch auf 99 gesetzt. Der Wert beinhaltet auch den Status (STARTED, STOPPED) und die Zeit des letzten Starts bzw. Stopps.

Durch die manuelle Änderung der Nummer “99” auf eine andere bekommt der Knoten eine neue Nummer. Die Nummer muss eindeutig sein und darf nicht mit null anfangen. Alle Nummern sollen gleiche Anzahl von Ziffern haben (Die Knotennummer wird für die Generierung von eindeutigen Referenznummern verwendet, und unterschiedliche Anzahl von Ziffern kann zu Duplikaten führen.)

Nach der Änderung der Nummer muss der Knoten neu gestartet werden.

Es wird geraten, die Knotennummer eines neuen Knotens immer von 99 auf eine andere zu ändern. Die Nummer 99 steht für einen noch nicht konfigurierten oder für einen falsch konfigurierten Knoten.

Knotennamen vergeben

Der Knotenname wird normalerweise automatisch vergeben. Solcher Knotenname wird aus dem Verzeichnispfad gebildet, in dem die B2B läuft. In manchen Fällen kann es sinnvoll sein, den Knotennamen zu ändern. Zum Beispiel, wenn die B2B auf mehreren Maschinen läuft oder in Docker-Containern, wo der Verzeichnispfad immer gleich ist. In solchen Fällen würden alle Knoten denselben automatisch erzeugten Knotennamen bekommen.

Hostnamen in den Knotennamen einbeziehen

Eine einfache Möglichkeit, den Knotennamen anzupassen, besteht darin, den Hostnamen des Servers in den Knotennamen einbeziehen zu lassen. Das erreicht man über das Setzen der Global Property B3P_SERVENODE_ADD_HOSTNAME = true. Der Knotenname wird dann etwa so aussehen: b2bprod1usrlocaltomcatwebappsb2bbp-engine falls der Hostname b2bprod1 ist.

Falls Docker benutzt wird, kann der Hostname in docker-compose.yml für jeden Container gesetzt werden. Das geschieht über die Variable hostname:

  b2b:
    image: ${NEXUS_IRR}/b2b:${VER_B2B}
    hostname: b2b1
    ...

Knotennamen mittels Umgebungsvariablen setzen

Der Knotenname kann auch in einer Umgebungsvariable gesetzt werden. Dafür muss die Global Property GET_B2BBP_NODE_NAME_FROM_ENV_VAR = true gesetzt sein. Damit lässt sich in der Umgebungsvariable b2bbp_node_name der Knotenname setzen. Zum Beispiel auf eine der folgenden Arten:

  • SET b2bbp_node_name=b2b_21 in das Start-Script hinzufügen
  • in Umgebungsvariablen CATALINA_OPTS oder JAVA_OPTS angeben: -Db2bbp_node_name=b2b_21

Der Knotenname wird dann b2b_21 sein.

Siehe auch

View Me   Edit Me