de.bsvrz.ars.ars.persistence
Class RestorePersDirTsk
java.lang.Object
java.lang.Thread
de.bsvrz.ars.ars.mgmt.tasks.Task
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)
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 |
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
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:
- Suche nach der groessten, zuletzt verwendeten ContainerID.
- Suche nach der groessten, zuletzt verwendeten Archivzeit.
- Neuaufbau der Indexe, falls im Verzeichnis einer Datenidentifikation und Datensatzart eine
PersistenceManager.REBUILDINDEX_FILE_FLAG_NAME
-Datei
(siehe Beschreibung dort) vorhanden ist.
- Parameters:
pMgr
- Aufrufender PersistenceManagernumOfPartitions
- 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