Class LogManager

  • All Implemented Interfaces:
    StoreConstants

    public class LogManager
    extends java.lang.Object
    implements StoreConstants
    This class manages the log file
    Author:
    Olivier Dedieu
    • Method Detail

      • getLogFilename

        public java.lang.String getLogFilename()
        Return the name of the log file.
        Returns:
        the name of the log file
      • isLogDirectory

        public boolean isLogDirectory()
      • getLogDirectory

        public java.io.File getLogDirectory()
      • getLogFileList

        public java.util.List<java.io.File> getLogFileList()
      • getLogWorkFile

        public java.io.File getLogWorkFile()
      • getLatestLogPrefixFile

        public java.io.File getLatestLogPrefixFile()
      • getLogFile

        public java.io.File getLogFile()
      • getPrefixLineCount

        public long getPrefixLineCount()
      • getLoadReport

        public LoadReport getLoadReport()
      • replaceSuffix

        public void replaceSuffix​(java.util.TreeSet<StorableLogEntry> newSuffix,
                                  LogEntry startLogEntry,
                                  boolean includeStart,
                                  boolean useIndex)
                           throws java.io.IOException
        Replace the existing suffix of the store (starting at startLogEntry) with a new one represented by newSuffix.
        Parameters:
        newSuffix - the new suffix
        startLogEntry - the position of the suffix to replace
        includeStart - if true start the suffix remplacement at startLogEntry ; otherwise just after startLogEntry
        useIndex - should use indexed log access
        Throws:
        java.io.IOException - if I/O exception occurs or a LogExpcetion if some conditions are not respected (eg: too deep replacement, new store is smaller than the common prefix)
        Since:
        jcms-4.1.0
      • getLineNumberInLogWork

        public long getLineNumberInLogWork​(long globalLineNumber)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • verifyLastStampIndex

        public boolean verifyLastStampIndex()
        Returns true if the last (highest) stamp is correctly indexed.
        Returns:
        true if the last (highest) stamp is correctly indexed.
        Since:
        jcms-5.0.5
      • verifyStampLineMap

        public boolean verifyStampLineMap()
        Verify if the all the stamps are correctly indexed. Prints the first bad indexed stamp in the store.
        Returns:
        true if all the stamps are correctly indexed.
        Since:
        jcms-5.0.5
      • searchStamp

        public static java.lang.String searchStamp​(java.lang.String line)
        Search the stamp in a line of the store.
        Parameters:
        line - a line of the store
        Returns:
        the stamp or null if no stamp is in the line
      • backupStore

        public boolean backupStore​(java.io.File backupFile)
        Backup the store.
        Parameters:
        backupFile - the backup file.
        Returns:
        true if the store has been successfully backuped.
        Since:
        jcms-5.7.0
      • setReplaceSuffixLimit

        public void setReplaceSuffixLimit​(int replaceSuffixLimit)
        A store suffix replacement starting before the limit will be rejected.
        Parameters:
        replaceSuffixLimit - the limit (in number of lines).
        Since:
        jcms-5.7.4
      • stampExists

        public boolean stampExists​(Stamp stamp)
      • moveOperations

        public long moveOperations​(Stamp stamp,
                                   long expectedLineCount)
        Move the operations of store-work.xml to the most recent store-prefix-n.xml. This method is dedicated for logDir.
        Parameters:
        stamp - move all the operations before this stamps, and also the operation with this stamp.
        expectedLineCount - the exepected line count to move
        Returns:
        the number of lines moved (-1 if an error occured)
        Since:
        jcms-10.0.8
      • getLogWorkStartLine

        public long getLogWorkStartLine()