package com.neocoretechs.bigsack.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; import com.neocoretechs.arieslogger.core.LogInstance; import com.neocoretechs.arieslogger.core.impl.LogCounter; import com.neocoretechs.arieslogger.core.impl.LogRecord; import com.neocoretechs.arieslogger.core.impl.LogToFile; import com.neocoretechs.arieslogger.core.impl.Scan; import com.neocoretechs.bigsack.DBPhysicalConstants; import com.neocoretechs.bigsack.io.pooled.ObjectDBIO; import com.neocoretechs.bigsack.session.BigSackSession; import com.neocoretechs.bigsack.session.SessionManager; public class AnalyzeLogs { public static void main(String[] args) throws Exception { // init with no recovery BigSackSession bss = SessionManager.ConnectNoRecovery(args[0], null); ObjectDBIO gdb = bss.getBTree().getIO(); LogCounter startAt = new LogCounter(1,LogToFile.LOG_FILE_HEADER_SIZE); Scan ls; for(int i = 0; i < DBPhysicalConstants.DTABLESPACES; i++) { ls = (Scan) gdb.getIOManager().getUlog(i).getLogToFile().openForwardScan(startAt, null); HashMap<LogInstance, LogRecord> records = null; // backward scan records in reverse order while ((records = ls.getNextRecord(0)) != null) { Iterator<Entry<LogInstance, LogRecord>> irecs = records.entrySet().iterator(); while(irecs.hasNext()) { Entry<LogInstance, LogRecord> recEntry = irecs.next(); LogRecord record = recEntry.getValue(); System.out.println(record); } } } } }