Friday, 28 February 2014

WebSphere Application Server: Storing transaction and compensation logs in a relational database for high availability

This has come up in discussions a number of times recently, including in the context of building out IBM Business Process Manager (BPM 8.5 on the cloud using IBM PureApplication System (IPAS).

One of my colleagues has used this approach at a number of clients.

It's something I've yet to configure, but it looks fairly straight forward :-)

You can, optionally, choose to store your WebSphere Application Server transaction and compensation logs in a relational database rather than as operating system files. This feature provides high availability (HA) support without having to use a shared file system.

The WebSphere Application Server transaction service writes information to a transaction log for every global transaction that involves two or more resources, or that is distributed across multiple servers. These transactions are started or stopped either by applications or by the container in which they are deployed. The transaction service maintains transaction logs to ensure the integrity of transactions. Information is written to the transaction logs in the prepare phase of a distributed transaction, so that if a Websphere Application Server with active transactions restarts after a failure, the transaction service is able to use the logs to replay any in-doubt transactions. The transaction service therefore enables the overall system to be brought back to a consistent state.

In previous releases of WebSphere Application Server, the transaction logs were stored as operating system files. In WebSphere Application Server Version 8.5.5, this remains the default configuration but you can, optionally, choose to store the transaction logs in a relational database. This configuration option is aimed at customers working in a high availability (HA) environment. In previous releases of WebSphere Application Server, HA transaction support required the use of a shared file system to host the transaction logs, such as an NFSv4-mounted network attached storage (NAS) or a storage area network (SAN). This new feature allows customers, particularly those with an investment in HA database technology, to use their HA database as a shared repository for the transaction logs, as an alternative to using a shared file system.

In WebSphere Application Server Version 8.5.5, you can use a similar facility, also aimed at customers working in a HA environment, to store the compensation recovery logs in a relational database. The WebSphere Application Server compensation service allows applications on disparate systems to coordinate activities that are more loosely coupled than atomic transactions. It stores information, in its own dedicated recovery logs, that is necessary to perform compensation after a system failure.

No comments: