<<HOME <TechDocs

Alexander von Boguszewski

TIBCO BW5 Administration Domain


Die Administration Domain umfasst eine zentrale Verwaltungs-, Überwachungs- und Deployment-, sowie die verteilte Laufzeit-Umgebung für BW Applikationen. Die Domain verwaltet alle Server (Machines), Benutzer, BW Komponenten und Projekte. Hierbei sind einzelne Maschinen sind nicht auf Domänen beschränkt, sondern können Applikationen von mehreren Domains ausführen.

BW5 Domain Overview

Schema BW5 Domain

Eine Domain besteht aus folgenden Komponenten

Machines

Eine oder mehrere Server (Machines) auf denen die BW Engines ausgeführt werden. Im Verzeichnis <TIBCO_HOME> werden alle relevanten Tibco Applikationen installiert.

TIBCO Administration Server

Innerhalb des Administrators werden die Nutzer, Maschinen, Projekte und deren Deployment Konfigurationen gespeichert. Über das Web- Interface des Administrators können die Domain und die SOA Applications erwartet werden. Ausserdem bieten das DomainUtility und AppManage die Möglichkeit die Domain automatisiert zu verwalten. Der Administrator stellt über Plugins auch eine Konfigurationsschnittstelle zu EMS und Monitoring über Hawk zu verfügung.

Der Administrator Prozess wird mit /<TIBCO_HOME>/administrator/domain/<DOMAIN_NAME>/bin/tibcoadmin_<DOMAIN_NAME gestartet.

Jede Domain hat einen primären Administration Server, es können auch sekundäre Administration Server über das DomainUtility hinzugefügt werden. Um die einen sekundären Server einzurichten, im DomainUtility unter Domain Configuraton -> Add a secondary Server aufrufen

Domain Data Store

Im Domain Data Store werden Nutzer, Rollen und Zugangsrechte, sowie Informationen zu den Maschinen, Komponenten und Konfigurationen gespeichert. Es gibt zwei Möglichkeiten die Domain-Daten zu Speichern.

  1. Datafiles Bei dieser Option waren die Domaindaten in zwei Dateien im Ordner /<TIBCO_HOME>/administrator/domain/<DOMAINNAME>/data gespeichert.
  1. Datenbank Über eine JDBC Connection wird eine Datenbank zur Speicherung der Domain Daten verwendet. Tabellen mit dem Präfix AU beinhalten die Daten zu Nutzern und Zugangsrechten, Tabellen mit dem Präfix AD die Daten zu Maschinen und Komponenten.

Generell ist die Speicherung der Domain Daten in der Datenbank vorteilhafter. Wenn EMS als Data Transport verwendet wird, muss eine Datenbank verwendet werden.

Die Datenbank-Performance ist schon bei mittelgroßen Domains schneller als die Verwendung der Dateien. Während eines Deployments werden die Domain Daten mehrfach verändert. Bei dem Datei Store wird bei jeder Änderung die Datei neu geschrieben. Im Vergleich dazu werden im Datenbank Store nur die geänderten Daten geschrieben.

Domain Data Transport

Es kann Tibco Rendezvous oder Tibco EMS als Kommunikationskanal verwendet werden. Über den Domain Data Transport kommunizieren alle Hawk Agents und der Administrator miteinander. Wenn EMS verwendet wird, muss der Domain Data Store in einer Datenbank liegen. Der Administrator verwendet das Messaging um mit deployten Serviceinstanzen, Adapter und Prozesse zu kommunizieren. Auf jeder Maschine sind hierfür Tibco HAWK Agents gestartet, die Nachrichten entgegennehmen (Deployment, Start, Stop) oder versenden (Monitoring, Info) können. Der EMS Server verwendet hierfür dynamic topics, über den EMS Admin können dies Topics auch überwacht werden. Die Kommunikation kann mit einem eigenen Subscriber auf die Topic “>” mitgeschnitten werden. Die Empfehlung ist es, einen eigenen EMS Server für jede Domain zu verwenden und die Application Payload ebenfalls über einen eigenen EMS Server abzuwickeln.

Der EMS Server wird mit

/<TIBCO_HOME>/ems/<VERSION>/bin/tibemsd64 -config “……cfgmgmt/ems/data/tibemsd.conf"

gestartet. Wichtig ist es das Konfigurationsverzeichnis anzugeben, da ansonsten im aktuellen Ordner nach deiner tibemsd.conf gesucht wird und falls nicht vorhanden die Datei mit Defaultwerten angelegt wird.

Application Data Store

Im Application Data Store wird der Status einzelner BW Prozess Instanzen gespeichert Die meisten der Informationen, die eine Prozess-Instanz speichert sind Informationen über den Prozess-Status, wenn ein Checkpoint erreicht wird. Es werden jedoch einige andere interne Informationen von dem Engine gespeichert. Wie beim Domain Data Store kann festgelegt werden, dass die Daten im Dateisystem oder der Datenbank (nur wenn die Domain Daten auch in der Datenbank persistiert werden) gespeichert werden. Bei der Speicherung im Dateisystem kann beim Anlegen der Domain mit dem DomainUtility definiert werden ob dies im Administrator oder direkt lokal auf der Maschine geschieht. Die Empfehlung ist lokal (das ist auch der Default bei EMS Transport), das dies zu einem weniger Last (Netzwerkverkehr, CPU und RAM Verbrauch beim Administrator) bedeutet und die Applikation unabhängig vom Administrator laufen kann. Allerdings kann wenn die Datenbank zur Speicherung der Prozessdaten verwendet wird, kann im FR Failover die Prozessinstanz mit den Zustand des letzten Checkpoints auf dem neuen Host gestartet werden. Um den Database Storage verwenden zu können muss die Applikation eine JDBC Connection Resource enthalten. Dies muss schon zur Design Time im Tibco Designer angelegt werden.

Konfiguriert werden kann die Datenbank Application Data Store im Tibco Administrator Application Management–>Application Name–>Configuration–>Process-Archive.par–Advanced-> Checkpoint Data Repository

Bei einem Local File Store finden sich das Store Verzeichnis unter <TIBCO_HOME>/tra/domain/<DOMAINNAME>/datafiles/

Anlegen der Domain

Um eine Tibco BW Domain nach einer Installation zu erzeugen, dient das Tool domainutility. Dies kann entweder interaktiv über eine GUI und ein CLI Interface bedient werden oder mit eine Konfigurationsfile. Ersteres ist selbsterklärend, zweiteres recht einfach.

BW5 Domain anlegen mit domainutilitycmd -cmdFile /home/tibco/CreateDomain_demoDomain.xml

Anlegen BW5 Domain

Zunächst kopieren das Beispiel für das Anlegen der Domain in unser Home Verzeichnis kopiert und angepasst werden:

 vi /home/tibco/CreateDomain_demoDomain.xml```
 
    <EMSParameters>
        <ServerURL>tcp://localhost:7222</ServerURL>
        <Username>admin</Username>
        <Password></Password>
    </EMSParameters>

    <DatabaseConfiguration>
        <DatabaseUrl>jdbc:oracle:thin:tibDB/tibDB@localhost:1521/XE</DatabaseUrl>
        <DatabaseUsername>tibDB</DatabaseUsername>
        <DatabasePassword>tibDB</DatabasePassword>
        <JdbcDriver>oracle.jdbc.driver.OracleDriver</JdbcDriver>
        <DatabaseMinConnections>0</DatabaseMinConnections>
        <DatabaseMaxConnections>10</DatabaseMaxConnections>
    </DatabaseConfiguration>

</CreateDomain>

Dann kann die Domain angelegt werden. /opt/tibco/soa/tra/5.9/bin/domainutilitycmd -cmdFile /home/tibco/CreateDomain_demoDomain.xml -logFile createDemoDomain.log

Prozesse

TIBCO Hawk

TIBCO Hawk Domain-Monitoring ermöglicht neben der Überwachung der Systeme auch ein Eingreifen, wie beispielsweise ein Deployment. Jede Maschine der Überwachungsumgebung ist mit Agenten ausgestattet, die über Regeln definierte Ereignisse veröffentlichen und Aktionen auslösen können. Auf diese Weise überwacht sich jede Maschine selbst. Die Hawk Installation auf der Maschine besteht aus zwei Komponenten, dem HAWK Agent für die Domain selbst und die Hawk MircoAgents. Der Hawk Agent für die Domain wird mit / <TIBCO_HOME>/tra/domain/<DOMAIN_NAME>/hawkagent_<DOMAIN_NAME> gestartet. Im selben Verzeichnis finden sich noch die Ordner autoconfig und plugins. In autoconfig finden sich die deployeden Rulebases und in plugins zusätzliche Mircoragents.

TIBCO BusinessWorks Engines

Jede Applikation die in der Domain deployed und gestartet wurde, wird in einem eigenen BW Engine (Betriebssystem-)Prozess ausgeführt. Jede BW Engine wird in einer eigenen JVM ausgeführt. Die BW Engines können zentral über die TRA Datei parametrisiert werden. Die TRA Datei findet sich im TIBCO_HOME/bw/5.x/bin/bwengine.tra. Hier können Pfade und Default Werte definiert werden, die von einem Deployment überschrieben werden können. Beispielsweise kann

tibco.env.HEAP_SIZE=256M
java.extended.properties -Xms512m -Xmx512m -verbose:gc
tibco.env.APP_ARGS=

Engine.ThreadCount=8 //Empfohlen sind 8 Threads pro per CPU Core
Engine.StepCount=20 // Maximale Anzahl der BW Prozessschritte bevor ein Thread Sicht
EnableMemorySavingMode.*=true (for all process flow) // BW Garbage Collection (not Java), Default false
EnableMemorySavingMode.<processName>=true (for specific process flow) // BW Garbage Collection (not Java) , Default false
Engine.JobIdBlockSize=1000 // Default 1000, 
Engine.ShutdownOnStartupError=true // Default false

eingestellt werden. Wenn die Default von einem Deployment überschrieben werden, kann dies pro Server einzeln eingestellt werden. In der Deploymentbeschreibung können die Parameter in der Binding Definition angepasst werden:

                <binding name="Process Archive">
                    <machine>eai2</machine>
                    <product>
                        <type>BW</type>
                        <version>5.12</version>
                        <location>/opt/tibco/soa/bw/5.12</location>
                    </product>
                    <setting>
                        <startOnBoot>false</startOnBoot>
                        <enableVerbose>false</enableVerbose>
                        <maxLogFileSize>20000</maxLogFileSize>
                        <maxLogFileCount>5</maxLogFileCount>
                        <threadCount>8</threadCount>
                        <java>
                            <initHeapSize>32</initHeapSize>
                            <maxHeapSize>256</maxHeapSize>
                            <threadStackSize>256</threadStackSize>
                        </java>
                    </setting>
                    <ftWeight>200</ftWeight>
                    <shutdown>
                        <checkpoint>false</checkpoint>
                        <timeout>0</timeout>
                    </shutdown>
                </binding>

Aktive Applikationen können unter Linux mit ps -ax | grep bwengine angezeigt werden:

<TIBCO_HOME>/bw/<VERSION>/bin/bwengine --pid --run --propFile <TIBCO_HOME>tra/domain/<DOMAIN_NAME>/application/<PROJEKTORDNER>/<APPLICAITONNAME>.tra --innerProcess

Das Log File finde sich unter <TIBCO_HOME>tra/domain/<DOMAIN_NAME>/application/logs

Aktive Services im TIBCO Administrator

Aktive Services

Adapter

Tibco Adapter kapseln den (komplexen) Zugriff auf Systeme und Technologien und bieten einen standardisierten Zugriff auf diese Ressourcen. Der Austausch von Informationen von den Adaptern mit BW Prozessen erfolgt über die TIBCO Messaging-Plattform, Die Adapter bieten i.d.R. zwei Kommunikations-Pattern an

Adapter müssen als eigenständige Prozesse auf dem Server gestartet werden, sind aber über den Domain Data Transport ansprechbar.

.