de.bsvrz.ars.ars.mgmt.tasks
Class RestoreTask

java.lang.Object
  extended by java.lang.Thread
      extended by de.bsvrz.ars.ars.mgmt.tasks.Task
          extended by de.bsvrz.ars.ars.mgmt.tasks.SingleTask
              extended by de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask
                  extended by de.bsvrz.ars.ars.mgmt.tasks.RestoreTask
All Implemented Interfaces:
SuspendableTask, ClientSenderInterface, Runnable

public class RestoreTask
extends SingleClientSenderTask

Task zur Wiederherstellung gesicherter Container.

Author:
beck et al. projects GmbH, Christian Wied

Nested Class Summary
private  class RestoreTask.MediumidContainerTupel
           
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
private  LongTermTaskStatePublisher.Task _longTermTaskStatePublisherTask
          Objekt, dem Informationen zum aktuellen Zustand der Task und dem Fortschritt von langwierigen Arbeiten übergeben werden.
private  byte[] indexMem
           
private static long LOESSCHUTZ_VERL
           
private  Set<String> mediumIdIgnoreSet
           
private static String UNAVAIL_MEDIUM_ID_FILE
           
 
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask
atgQuery, ddResponse, deserializer, queryAppObj, queryIdx, SENDCONTROL_TIMEOUT, serializerVersion, syncObj
 
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
archMgr, didTree, INDEX_MEMORY_SIZE, isTerminated, logger, persMgr, ringOfDeathListener, taskStepListeners
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Fields inherited from interface de.bsvrz.dav.daf.main.ClientSenderInterface
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
 
Constructor Summary
RestoreTask(ArchiveManager archiveMgr, RingOfDeathListener rodl, RingBuffer<ResultData> inputData, LongTermTaskStatePublisher longTermTaskStatePublisher)
          Erzeugt einen neuen Task zur Wiederherstellung gesicherter Container.
 
Method Summary
private  List<RestoreTask.MediumidContainerTupel> collectAllMediumIdsFromDir()
           
private  List<RestoreTask.MediumidContainerTupel> collectMediumIdsByDataSpec(ArchiveDataSpecification[] ads)
           
static long getLOESSCHUTZ_VERL()
           
private  void initIgnoreList()
          Liest die Datei MEDIUM_ID_IGNORE_FILE aus und schreibt die darin enthaltenen MedienIds in das Set mediumIdIgnoreSet.
private  boolean isMediumIdToBeRestored(String mediumID)
           
static boolean isUnavailMediumIDsFile(String name)
          Prueft, ob der angegebene Dateiname der Name einer _unavailable_mediumids.dat-Datei ist.
private  void restore(ResultData resultData)
           
private  void restoreFromBackup(int backupMediumID, String containerFileName, long objId, long atgId, long aspId, int sv, ArchiveDataKind archiveDataKind)
          Holt einen Container aus dem Backup zurueck.
 void run()
           
static void setLOESSCHUTZ_VERL(long loesschutz_verl)
           
protected  void work(ResultData resultData)
          Fuehrt die Wiederherstellung gesicherter Datenvontainer durch.
 
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask
dataRequest, getObjectsFromDAV, init, isRequestSupported, parseArchiveDataSpec, sendErrorResponse, sendErrorResponse, sendSuccessResponse, sendSuccessResponse, subscribeSender, unsubscribeSender
 
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

UNAVAIL_MEDIUM_ID_FILE

private static final String UNAVAIL_MEDIUM_ID_FILE
See Also:
Constant Field Values

LOESSCHUTZ_VERL

private static long LOESSCHUTZ_VERL

mediumIdIgnoreSet

private Set<String> mediumIdIgnoreSet

indexMem

private byte[] indexMem

_longTermTaskStatePublisherTask

private LongTermTaskStatePublisher.Task _longTermTaskStatePublisherTask
Objekt, dem Informationen zum aktuellen Zustand der Task und dem Fortschritt von langwierigen Arbeiten übergeben werden.

Constructor Detail

RestoreTask

public RestoreTask(ArchiveManager archiveMgr,
                   RingOfDeathListener rodl,
                   RingBuffer<ResultData> inputData,
                   LongTermTaskStatePublisher longTermTaskStatePublisher)
            throws ConfigurationException
Erzeugt einen neuen Task zur Wiederherstellung gesicherter Container.

Parameters:
archiveMgr - Der Archiv-Manager.
rodl - Der Listener wird benachrichtigt beim Beenden der Task.
inputData - Eingangswarteschlange
Throws:
ConfigurationException
Method Detail

run

public void run()
Specified by:
run in interface Runnable
Overrides:
run in class SingleTask
See Also:
Runnable.run()

isUnavailMediumIDsFile

public static boolean isUnavailMediumIDsFile(String name)
Prueft, ob der angegebene Dateiname der Name einer _unavailable_mediumids.dat-Datei ist.

Parameters:
name - Name einer Datei
Returns:
Wahr, wenn es der Name einer _unavailable_mediumids.dat-Datei ist

work

protected void work(ResultData resultData)
Fuehrt die Wiederherstellung gesicherter Datenvontainer durch.

Specified by:
work in class SingleTask
Parameters:
resultData - Zu verarbeitender Datensatz aus der Eingangswarteschlange.

restore

private void restore(ResultData resultData)
              throws Exception
Throws:
Exception

collectAllMediumIdsFromDir

private List<RestoreTask.MediumidContainerTupel> collectAllMediumIdsFromDir()
                                                                     throws Exception
Throws:
Exception

collectMediumIdsByDataSpec

private List<RestoreTask.MediumidContainerTupel> collectMediumIdsByDataSpec(ArchiveDataSpecification[] ads)
                                                                     throws Exception
Throws:
Exception

restoreFromBackup

private void restoreFromBackup(int backupMediumID,
                               String containerFileName,
                               long objId,
                               long atgId,
                               long aspId,
                               int sv,
                               ArchiveDataKind archiveDataKind)
                        throws Exception
Holt einen Container aus dem Backup zurueck.

Throws:
Exception

initIgnoreList

private void initIgnoreList()
Liest die Datei MEDIUM_ID_IGNORE_FILE aus und schreibt die darin enthaltenen MedienIds in das Set mediumIdIgnoreSet. Fehler werden großzügig behandelt - notfalls bleibt das Set leer.


isMediumIdToBeRestored

private boolean isMediumIdToBeRestored(String mediumID)

getLOESSCHUTZ_VERL

public static long getLOESSCHUTZ_VERL()

setLOESSCHUTZ_VERL

public static void setLOESSCHUTZ_VERL(long loesschutz_verl)