TIBCO iProcess Engine Behavior

The following table shows how different TIBCO iProcess Engine components behave in the event of a database failure or failover.

TIBCO iProcess Engine Component

Behavior When Failure or Failover Occurs

Server processes

On SQL and DB2: Each TIBCO iProcess Engine process clears any existing database connections (as they are used) and attempts to re-establish a new connection. If necessary, the process attempts to reconnect until the database becomes available again.

On Oracle: The server processes use the Oracle Client to establish and maintain database connections. The Oracle Client therefore attempts to re-establish the database connection. If necessary, it attempts to reconnect until the database becomes available again.

Database transactions

Any in-progress Write transaction is rolled back. When the database becomes available again:

Read-only transactions continue and complete as normal.
Write transactions are retried.

This means that transactional integrity is maintained; no transaction or workflow operation is left in an indeterminate state. Operations either succeed and are committed or fail and are rolled back.

Process Sentinels

Any processing that requires a connection to the database becomes unresponsive until the database connection is restored.

For example, if you use SWDIR\util\swsvrmgr to issue a Restart event for a process when the database has failed, the process is not restarted until the database connection is restored.

Note: On the Oracle (UNIX/Linux) TIBCO iProcess Engine the event system used by the Process Sentinels is provided by the database. This means that the use of Oracle’s Transparent Application Failover (TAF) feature is required to provide failure or failover support. For more information, see Oracle (Windows, UNIX or Linux).

System messages

Any TIBCO iProcess Engine process that attempts to contact the database will fail (until the connection is restored), causing it to write a database connection failure error to the SWDIR\logs\sw_error file.

For example:

2005/04/25 15:41(BG:1:2496:pro::7.1:4352): 0-lcase_add() Unable to execute statement (Statement ID - 49) (S1002 - [Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index) lcase_add() Unable to execute statement (37000 - Statement failed due to database FAILOVER )

Command line utilities

Any command that requires a connection to the database hangs until the database connection is restored.

For example, if you have a SWDIR\util\swadm session open when the database fails, and you then try to add a BG process, the command hangs until the database connection is restored. As soon as the database is available again, the command completes and the new BG process is added.