Innerhalb einer TIBCO Domain kann dieFehlertoleranz durch die Verwendung mehrerer BW Engines erhöht werden.
Im Falle eines Ausfalls einer Engine, kann eine andere Engine die Anwendung und die zugehörigen Prozesse neu starten.
Dies ist aber nicht bei allen Prozess-Startern möglich. Beispielsweise wartet der HTTP-Starter auf Anfragen an einen bestimmten Port auf der Maschine auf der die Prozess-Engine gestartet wurde. Wenn eine sekundäre Engine den
Prozess für eine Master-Engine übernimmt werden die HTTP Anfragen auf dem neuen Host entgegengenommen. HTTP-Anfragen gehen immer an einen definierten Host, dass heist, dass eingehende HTTP-Anforderungen nicht automatisch umgeleitet. Hier ist zusätzlich noch ein Load Balancer nötig.
Domain vor dem Failover
Domain nach dem Failover
Um die Fault Tolerance einzurichten, muss die Applikation auf mindestens zwei Hosts deployed sein. Um die Applikation auf einen zweiten Host zu deployen, muss unter
Application Management–>Application Name–>Configuration–>Process-Archive.par–>General->Add additional Machines
ein zweiter Host hinzugefügt werden. Nach dem Hinzufügen des zweiten Hosts muss die Fault Tolerant konfiguriert werden. Die Option “FT Group Setting” muss hierzu aktiviert werden.
Mit dem Heartbeat Interval wird die Häufigkeit angegeben mit der der Master die Sekundären Hosts über seine Verfügbarkeit informiert. Über den Activation Interval wird angegeben nach
welcher Zeitspanne der Sekundäre Host gestartet wird.
Wenn eine Datenbank zur Speicherung der Prozessdaten einer Prozessinstanz verwendet wird (wird beim Einrichten der Domain konfiguriert), kann im Failover die Prozessinstanz mit den Zustand des letzten Checkpoints neu gestartet werden.
Im Falle eines Ausfalls sind nur Datenänderungen, die nach dem Checkpoint ausgeführt wurden, verloren.
Dazu kann unter Application Management–>Application Name–>Configuration–>Process-Archive.par–Advanced-> Checkpoint Data Repository eine JDBC Connection Resource ausgewählt werden.
Über AppManage kann die FT Konfiguration auch automatisiert angelegt werden. Eine Beispiel XML Konfiguration hierfür ist:
vi sampleProj.xml
<services>
<bw name="ProcessArchive.par">
<enabled>true</enabled>
<bindings>
<binding name="ProcessArchive">
<machine>eai2</machine>
<product>
<type>BW</type>
<version>5.12</version>
<location>/opt/tibco/soa/bw/5.12</location>
</product>
<setting>
</setting>
<ftWeight>200</ftWeight>
<shutdown>
<checkpoint>false</checkpoint>
<timeout>0</timeout>
</shutdown>
</binding>
<binding name="ProcessArchive-2">
<machine>localhost</machine>
<product>
<type>BW</type>
<version>5.12</version>
<location>/opt/tibco/soa/bw/5.12</location>
</product>
<setting>
</setting>
<ftWeight>200</ftWeight>
<shutdown>
<checkpoint>false</checkpoint>
<timeout>0</timeout>
</shutdown>
</binding>
</bindings>
</services>
./AppManage -deploy -ear /home/tibco/ProcessArchive.par -deployConfig /home/tibco/sampleProj.xml -domain test_avb -user admin -pw admin