Class TransactionLogHeader

java.lang.Object
bitronix.tm.journal.TransactionLogHeader

public class TransactionLogHeader extends Object
Used to control a log file's header.

The physical data is read when this object is created then cached. Calling setter methods sets the header field then moves the file pointer back to the previous location.

Author:
lorban
  • Field Details

    • FORMAT_ID_HEADER

      public static final int FORMAT_ID_HEADER
      Position of the format ID in the header (see BitronixXid.FORMAT_ID).
      See Also:
    • TIMESTAMP_HEADER

      public static final int TIMESTAMP_HEADER
      Position of the timestamp in the header.
      See Also:
    • STATE_HEADER

      public static final int STATE_HEADER
      Position of the log file state in the header.
      See Also:
    • CURRENT_POSITION_HEADER

      public static final int CURRENT_POSITION_HEADER
      Position of the current log position in the header.
      See Also:
    • HEADER_LENGTH

      public static final int HEADER_LENGTH
      Total length of the header.
      See Also:
    • CLEAN_LOG_STATE

      public static final byte CLEAN_LOG_STATE
      State of the log file when it has been closed properly.
      See Also:
    • UNCLEAN_LOG_STATE

      public static final byte UNCLEAN_LOG_STATE
      State of the log file when it hasn't been closed properly or it is still open.
      See Also:
  • Constructor Details

    • TransactionLogHeader

      public TransactionLogHeader(FileChannel fc, long maxFileLength) throws IOException
      TransactionLogHeader are used to control headers of the specified RandomAccessFile. All calls to setters are synchronized on the passed-in RandomAccessFile.
      Parameters:
      fc - the file channel to read from.
      maxFileLength - the max file length.
      Throws:
      IOException - if an I/O error occurs.
  • Method Details

    • getFormatId

      public int getFormatId()
      Get FORMAT_ID_HEADER.
      Returns:
      the FORMAT_ID_HEADER value.
      See Also:
    • getTimestamp

      public long getTimestamp()
      Get TIMESTAMP_HEADER.
      Returns:
      the TIMESTAMP_HEADER value.
      See Also:
    • getState

      public byte getState()
      Get STATE_HEADER.
      Returns:
      the STATE_HEADER value.
      See Also:
    • getPosition

      public long getPosition()
      Get CURRENT_POSITION_HEADER.
      Returns:
      the CURRENT_POSITION_HEADER value.
      See Also:
    • setFormatId

      public void setFormatId(int formatId) throws IOException
      Set FORMAT_ID_HEADER.
      Parameters:
      formatId - the FORMAT_ID_HEADER value.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • setTimestamp

      public void setTimestamp(long timestamp) throws IOException
      Set TIMESTAMP_HEADER.
      Parameters:
      timestamp - the TIMESTAMP_HEADER value.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • setState

      public void setState(byte state) throws IOException
      Set STATE_HEADER.
      Parameters:
      state - the STATE_HEADER value.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • setPosition

      public void setPosition(long position) throws IOException
      Set CURRENT_POSITION_HEADER.
      Parameters:
      position - the CURRENT_POSITION_HEADER value.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • goAhead

      public void goAhead(long distance) throws IOException
      Advance CURRENT_POSITION_HEADER.
      Parameters:
      distance - the value to add to the current position.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • rewind

      public void rewind() throws IOException
      Rewind CURRENT_POSITION_HEADER back to the beginning of the file.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • toString

      public String toString()
      Create human-readable String representation.
      Overrides:
      toString in class Object
      Returns:
      a human-readable String representing this object's state.