DiskJournal (Bitronix Transaction Manager :: Core 2.1.4 API)
Date: 2013-09-15

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## bitronix.tm.journal
Class DiskJournal

    java.lang.Object
      bitronix.tm.journal.DiskJournal

All Implemented Interfaces:
  Journal, Service

    public class DiskJournal

extends Object
implements Journal

Simple implementation of a journal that writes on a two-files disk log.

Files are pre-allocated in size, never grow and when the first one is full, dangling records are copied to the second file and logging starts again on the latter.

This implementation is not highly efficient but quite robust and simple. It is based on one of the implementations proposed by Mike Spille.

Configurable properties are all starting with `bitronix.tm.journal.disk`.

Author:
  lorban
See Also:
  `Configuration`, XA Exposed, Part III: The Implementor's Notebook

Constructor Summary
`DiskJournal()` Create an uninitialized disk journal.

Method Summary
`void` | `close()` Close the disk journal and the underlying files.
`Map<Uid,TransactionLogRecord>` | `collectDanglingRecords()` Collect all dangling records of the active log file.
`void` | `force()` Force active log file to synchronize with the underlying disk device.
`void` | `log(int status, Uid gtrid, Set<String> uniqueNames)` Log a new transaction status to journal.
`void` | `open()` Open the disk journal.
`void` | `shutdown()` Shutdown the service and free all held resources.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DiskJournal

    public DiskJournal()

  Create an uninitialized disk journal. You must call open() prior you can use it.

Method Detail

### log

    public void log(int status,
                    Uid gtrid,
                    Set<String> uniqueNames)
             throws IOException

  Log a new transaction status to journal. Note that the DiskJournal will not check the flow of the transaction. If you call this method with erroneous data, it will be added to the journal anyway.

  Specified by:
    `log` in interface `Journal`
  Parameters:
    `status` - transaction status to log. See `Status` constants.
    `gtrid` - raw GTRID of the transaction.
    `uniqueNames` - unique names of the `ResourceBean`s participating in this transaction.
  Throws:
    `IOException` - in case of disk IO failure or if the disk journal is not open.

### force

    public void force()
               throws IOException

  Force active log file to synchronize with the underlying disk device.

  Specified by:
    `force` in interface `Journal`
  Throws:
    `IOException` - in case of disk IO failure or if the disk journal is not open.

### open

    public void open()
              throws IOException

  Open the disk journal. Files are checked for integrity and DiskJournal will refuse to open corrupted log files. If files are not present on disk, this method will create and pre-allocate them.

  Specified by:
    `open` in interface `Journal`
  Throws:
    `IOException` - in case of disk IO failure.

### close

    public void close()
               throws IOException

  Close the disk journal and the underlying files.

  Specified by:
    `close` in interface `Journal`
  Throws:
    `IOException` - in case of disk IO failure.

### shutdown

    public void shutdown()

  Description copied from interface: `Service`
  Shutdown the service and free all held resources.

  Specified by:
    `shutdown` in interface `Service`

### collectDanglingRecords

    public Map<Uid,TransactionLogRecord> collectDanglingRecords()
                                                         throws IOException

  Collect all dangling records of the active log file.

  Specified by:
    `collectDanglingRecords` in interface `Journal`
  Returns:
    a Map using Uid objects GTRID as key and `TransactionLogRecord` as value
  Throws:
    `IOException` - in case of disk IO failure or if the disk journal is not open.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006-2013 Bitronix Software. All Rights Reserved.