<<HOME <TechDocs

Alexander von Boguszewski

TIBCO BW5 Fault Tolerant Deployment von BW 5 Prozessen


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.

Anlegen einer neuen Fault Tolerance Configuration
Wenn mehrere Hosts in der FT Gruppe konfiguriert sind, kann über FT Weight konfiguriert werden, welcher Sekundärer Host vom Master im Falle eines Ausfalls übernimmt. Wenn alle Engines gleichberechtigt sind, übernimmt bei einem Ausfall eine Engine den Prozess und behält die Verarbeitung, bis auch sie ausfällt. Bei einer Master/Slave Konfiguration wird der Prozess bei der Wiederherstellung des Masters auf dem Slave gestoppt und an den Master übergeben.
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