de.bsvrz.ars.ars.persistence
Class RestorePersDirTsk

java.lang.Object
  extended by java.lang.Thread
      extended by de.bsvrz.ars.ars.mgmt.tasks.Task
          extended by de.bsvrz.ars.ars.persistence.RestorePersDirTsk
All Implemented Interfaces:
SuspendableTask, Runnable

public class RestorePersDirTsk
extends Task

Diese Klasse teilt das Persistenzverzeichnis in disjunkte Teilbaeume auf und stellt alle Verwaltungsinformationen wieder her.

Author:
beck et al. projects GmbH, Alexander Schmidt
See Also:
PersistenceManager.REBUILDINDEX_FILE_FLAG_NAME, PersistenceManager.rebuildIndex(Task, byte[], long, long, long, int, ArchiveDataKind)

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
static int test_badDID
           
static int test_frebuilt
           
static int test_goodDID
           
static int test_totalDID
           
static int test_viscont
           
 
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
archMgr, didTree, INDEX_MEMORY_SIZE, isTerminated, logger, ringOfDeathListener, taskStepListeners
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Method Summary
static void cleanUp()
          Gibt den benutzten Speicher frei (insbes.
static int getBadDID()
           
static int getErrorCount()
           
static int getFullyRebuiltCont()
           
static int getGoodDID()
           
static long getMaxArchiveTime()
           
static long getMaxContID()
           
static int getMaxMedienID()
           
static int getTotalDID()
           
static int getVisitedCont()
           
static boolean restoreDone()
           
 void run()
          Durchlaueft mit Hilfe eines ContainerDataIterator jedes Verzeichnis aus startDirs und stellt die Verwaltungsinformation wieder her.
static void startRestore(PersistenceManager pMgr, int numOfPartitions)
          Zerlegt das Persistenzverzeichnis in eine Anzahl disjunkter Teile, erzeugt ebenso viele Wiederherstellungstasks und startet sie.
static String status()
           
static boolean success()
           
static String summary()
           
static void terminateRestore()
          Bricht den Wiederherstellungslauf ab
 
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
addTaskStepListener, getArchMgr, isTaskTerminated, removeTaskStepListener, suspendTaskIfNecessary, terminateTask
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

test_totalDID

public static int test_totalDID

test_badDID

public static int test_badDID

test_goodDID

public static int test_goodDID

test_viscont

public static int test_viscont

test_frebuilt

public static int test_frebuilt
Method Detail

startRestore

public static void startRestore(PersistenceManager pMgr,
                                int numOfPartitions)
Zerlegt das Persistenzverzeichnis in eine Anzahl disjunkter Teile, erzeugt ebenso viele Wiederherstellungstasks und startet sie. Zum Wiederherstellen gehoert:

Parameters:
pMgr - Aufrufender PersistenceManager
numOfPartitions - gewuenschte maximale Anzahl disjunkter Teile

restoreDone

public static boolean restoreDone()
Returns:
Wahr, falls alle Tasks fertig sind, falsch sonst

terminateRestore

public static void terminateRestore()
Bricht den Wiederherstellungslauf ab


cleanUp

public static void cleanUp()
Gibt den benutzten Speicher frei (insbes. den von den einzelnen Tasks zum Wiederherstellen der Indexe benoetigten Speicher)


getMaxArchiveTime

public static long getMaxArchiveTime()
Returns:
Maximum der von allen Threads gefundenen Archivzeit

getMaxContID

public static long getMaxContID()
Returns:
Maximum der von allen Threads gefundenen Container-ID

getMaxMedienID

public static int getMaxMedienID()
Returns:
Maximum der von allen Threads gefundenen Medien-ID

getTotalDID

public static int getTotalDID()
Returns:
Summe der von allen Threads besuchten DID-Verzeichnisse

getGoodDID

public static int getGoodDID()
Returns:
Summe der von allen Threads besuchten DID-Verzeichnisse, in denen die Wiederherstellung erfolgreich abgeschlossen wurde.

getBadDID

public static int getBadDID()
Returns:
Summe der von allen Threads besuchten DID-Verzeichnisse, in denen die Wiederherstellung nicht erfolgreich abgeschlossen wurde.

getErrorCount

public static int getErrorCount()
Returns:
Summe der in allen Threads aufgetretenen RuntimeExceptions während der Wiederherstellung.

getVisitedCont

public static int getVisitedCont()
Returns:
Zahl der bisher besuchten Container

getFullyRebuiltCont

public static int getFullyRebuiltCont()
Returns:
Zahl der bisher besuchten Container, bei denen alle Datensaetze zur Wiederherstellung gelesen werden mussten

success

public static boolean success()
Returns:
Wahr, falls kein Verzeichnis nicht wiederhergestellt werden konnte, falsch sonst

summary

public static String summary()
Returns:
Zusammenfassung des Wiederherstellungslaufes

status

public static String status()
Returns:
Zwischenstand des Wiederherstellungslaufes

run

public void run()
Durchlaueft mit Hilfe eines ContainerDataIterator jedes Verzeichnis aus startDirs und stellt die Verwaltungsinformation wieder her.

Specified by:
run in interface Runnable
Overrides:
run in class Thread