Product Documentation


Previous Topic

Next Topic

Utility to Search Logs for Open Transactions

FairCom developers have encountered situations where it is necessary to determine the existence of open transactions pending with FairCom DB. On such situation is cases where a single open transaction has resulted in the number of transaction logs to accumulate beyond the capacity of the I/O system, causing a FairCom DB failure.

Diagnosing recent FairCom DB replication enhancements is another situation. FairCom DB replication facilities are transaction log based. That is, contents of the transaction logs can be read and applied to a remote server through the FairCom DB Replication SDK. During development of a replication enabled application, it can prove useful to determine which open transactions are pending.

The FairCom DB Open Transaction Search utility, ctodmp, was created to search and identify open transactions pending in c-tree transaction logs.

ctodmp is very similar to ctldmp except that instead of dumping the contents of transaction logs, ctodmp searches for unmatched transaction begin and end entries. Specifically, ctodmp looks for TRANBEG, TRANEND and TRANABT entries as well as searching checkpoints for open (and/or vulnerable) transactions. ctodmp provides a list unmatched entries. These unmatched entries are specified by transaction number, location in the log files, and user thread handle, and are classified as:

  • BEG - found TRANBEG, but no TRANEND or TRANABT
  • END - found TRANEND, but no TRANBEG
  • ABT - found TRANABT, but no TRANBEG
  • CHK - found transaction in checkpoint, but no subsequent TRANEND or TRANABT. This is ambiguous, since the transaction may have already committed, but still be awaiting related buffer flushes or a TRANABT is not part of the log set scanned by ctodmp. The user thread handle is for the checkpoint thread, not the actual user.