|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.ars.ars.mgmt.InQueuesMgr
public class InQueuesMgr
Warteschlangen-Manager. Verteilt reinkommende Datentelegramm mit Datensaetzen/Archivanfragen/Archiv-Informationsanfragen/ Backup-/Restore-/HeaderRestore-/LZV/Delete-/RequestGap-Aufträgen auf die jeweilige Warteschlange.
Nested Class Summary | |
---|---|
class |
InQueuesMgr.ArchiveDataReceiver
Empfaengerklasse fuer Archivdaten |
class |
InQueuesMgr.ArchiveSettingsReceiver
Empfaengerklasse fuer Archiveinstellungen |
class |
InQueuesMgr.DataAckSender
|
class |
InQueuesMgr.DataReceiver
Abstrakte Klasse, die zum Empfang bestimmter Daten (z.B. |
class |
InQueuesMgr.QueryReceiver
Empfaengerklasse fuer Archivanfragen |
Field Summary | |
---|---|
static int |
CAPA_Q_ARCH_TSK_REQ
Kapazitaet des Ringpuffers fuer nachgelieferte Datensaetze |
static int |
INITIAL_CAPA_Q_ARCH_TSK_ONLINE
Initiale Maximalgroesse eines Ringpuffers fuer aktuelle Datensaetze. |
static String |
MSG_PID_QUEUE_FULL
|
static int |
NUM_OF_ARCH_QUEUES_ONLINE
Zahl der Tasks, die aktuelle Datensaetze archivieren (sollte Primzahl sein) |
static int |
NUM_OF_ARCH_QUEUES_REQ
Zahl der Tasks, die nachgelieferte Datensaetze archivieren |
static int |
NUM_OF_NONARCH_QUEUES
|
static int |
NUM_OF_SINGLETASKS
|
static int |
Q_ARC_SETT_IDX
|
static int |
Q_ARCINF_IDX
|
static int |
Q_BACKUP_IDX
|
static int |
Q_DELETE_IDX
|
static int |
Q_HDR_REST_IDX
|
static int |
Q_LZV_IDX
|
static int |
Q_QRYA_IDX
Indexe der Eingangswarteschlangen |
static int |
Q_QRYB_IDX
|
static int |
Q_QRYC_IDX
|
static int |
Q_REQ_GAP_IDX
|
static int |
Q_RESTORE_IDX
|
static int |
Q_SIMPARAM_IDX
|
static int |
ST_ARC_SETT_IDX
|
static int |
ST_BACKUP_IDX
|
static int |
ST_DELETE_IDX
|
static int |
ST_HDR_REST_IDX
|
static int |
ST_LZV_IDX
|
static int |
ST_REQ_GAP_IDX
|
static int |
ST_RESTORE_IDX
|
Constructor Summary | |
---|---|
InQueuesMgr(ArchiveManager aMgr,
DataIdentTree dTree)
Erzeugt den Warteschlangen-Manager. |
Method Summary | |
---|---|
static int |
calcOnlineArchivTaskIndex(long objID,
long atgID,
long aspID,
int simVar)
Verteilung der Datenidentifikationen auf die Online-Archiv-Tasks erfolgt anhand der IDs. |
static int |
calcReqArchivTaskIndex(long objID,
long atgID,
long aspID,
int simVar)
Verteilung der Datenidentifikationen auf die Nachgefordert-Archiv-Tasks erfolgt anhand der IDs. |
void |
checkForSuspendNonWriteTask()
Prueft ob Tasks temporaer blockiert werden sollen und blockiert ggf. |
int |
countOnlineDataInQueues()
|
void |
decrOnlineDataInQueues()
|
InQueuesMgr.ArchiveDataReceiver |
getArchiveDataReceiver()
Die Klasse ArchivConfig meldet die zu archivierenden Daten mit dem Objekt als Empfaenger an, das von dieser Methode geliefert wird. |
float[][] |
getArchiveQueuesOnlineStatus()
|
float[][] |
getArchiveQueuesRequestedStatus()
|
ArchiveSettingsTask |
getArchiveSettingsTask()
Liefert den Task, der fuer die Bearbeitung der Archiveinstellungen verantwortlich ist. |
InQueuesMgr.DataAckSender |
getDataAckSender()
Die Klasse ArchivConfig meldet die Quittungen fuer die zu archivierenden Daten mit dem Objekt als Sender an, das von dieser Methode geliefert wird. |
int |
getHiQueryTaskNum()
|
int |
getLoQueryTaskNum()
|
int |
getMidQueryTaskNum()
|
float[][] |
getNonArchiveQueuesStatus()
|
void |
getObjectsFromDav()
In dieser Methode wird allen Tasks (falls notwendig) die Moeglichkeit gegeben, benoetigte Objekte vom DAV zu laden. |
ArchiveTask |
getOnlineArchiveTask(long objId,
long atgId,
long aspId,
int simVar)
Nur fuer Testzwecke: Liefert den gewuenschten ArchiveTask |
double |
getQueueLoad()
|
SingleTask |
getSingleTask(int taskIndex)
Liefert den gewuenschten SingleTask (um etwa Listener einzuhaengen) |
static long |
getTotalDSReceived()
|
static int |
getTotalOnlineQueuesCapa()
|
void |
insertCloseContainer(long objID,
ArchiveTask.CloseContainerObject cco)
Fuegt einen nachgelieferten Datensatz in die entsprechende Queue ein. |
void |
insertInArchiveQueueReq(long archiveTime,
ArchiveData ad)
Fuegt einen nachgeforderten Datensatz in die entsprechende Queue ein. |
boolean |
insertInBackupQueue(ResultData resultData)
Fügt dem Sicherungs-Task einen Auftrag hinzu. |
boolean |
insertInDeleteRegularQueue(ResultData resultData)
Fügt dem Lösch-Task (automatisches Löschen) einen Auftrag hinzu. |
boolean |
insertInLZVQueue(ResultData resultData)
Fügt dem LZV-Task einen Auftrag hinzu. |
boolean |
insertInRequestQueue(ResultData resultData)
Fügt dem Nachfordern-Task einen Auftrag hinzu. |
boolean |
insertInSimVarDeleteQueue(ResultData resultData)
Fügt dem Simulationsvarianten-Lösch-Task einen Auftrag hinzu. |
boolean |
insertSimVarParam(SimulationResultData resultData)
Fügt dem Parametrierungs-Task einen weiteren Auftrag hinzu. |
protected void |
logCapaNoLongerExceeded(int maxsize,
String qname,
int leftouts)
|
protected void |
logSendMsgCapaExceeded(int maxsize,
String qname,
ResultData rd)
Betriebsmeldung absetzen: Warteschlange voll. |
void |
ringOfDeath(Task doomedTask)
Wird von einem Task vor dem Verlassen der Hauptschleife aufgerufen, wenn dem Task dieses Interface im Konstruktor uebergeben wurde.. |
void |
setQueryTaskNumbers(int numHi,
int numMid,
int numLo)
Setzt die Anzahl der Threads fuer Archivanfragen auf die angegebenen Werte. |
void |
startAllTasks()
Startet alle Tasks (Multi- und Single-Tasks) sowie die Archiv-Tasks. |
void |
stopAllTasks()
Beendet alle Tasks (Multi- und Single-Tasks) sowie die Archiv-Tasks. |
void |
subscribeObjects()
In dieser Methode wird allen Tasks (falls notwendig) die Moeglichkeit gegeben, sich auf Objekte anzumelden. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int ST_ARC_SETT_IDX
public static final int ST_BACKUP_IDX
public static final int ST_RESTORE_IDX
public static final int ST_HDR_REST_IDX
public static final int ST_LZV_IDX
public static final int ST_DELETE_IDX
public static final int ST_REQ_GAP_IDX
public static final int NUM_OF_SINGLETASKS
public static final int Q_QRYA_IDX
public static final int Q_QRYB_IDX
public static final int Q_QRYC_IDX
public static final int Q_ARCINF_IDX
public static final int Q_BACKUP_IDX
public static final int Q_RESTORE_IDX
public static final int Q_HDR_REST_IDX
public static final int Q_LZV_IDX
public static final int Q_DELETE_IDX
public static final int Q_REQ_GAP_IDX
public static final int Q_ARC_SETT_IDX
public static final int Q_SIMPARAM_IDX
public static final int NUM_OF_NONARCH_QUEUES
public static int NUM_OF_ARCH_QUEUES_REQ
public static int NUM_OF_ARCH_QUEUES_ONLINE
public static int INITIAL_CAPA_Q_ARCH_TSK_ONLINE
public static int CAPA_Q_ARCH_TSK_REQ
public static final String MSG_PID_QUEUE_FULL
Constructor Detail |
---|
public InQueuesMgr(ArchiveManager aMgr, DataIdentTree dTree) throws ConfigurationException
aMgr
- Archiv-ManagerdTree
- DataIdentTree
ConfigurationException,
- falls die IDs der Attributgruppe oder des Aspekts der ArchivAnfrageSchnittstelle nicht bestimmt werden koennen.
ConfigurationException
Method Detail |
---|
public void setQueryTaskNumbers(int numHi, int numMid, int numLo)
numHi
- Anzahl Tasks der Prioritaet "hoch"numMid
- Anzahl Tasks der Prioritaet "mittel"numLo
- Anzahl Tasks der Prioritaet "niedrig"public int getHiQueryTaskNum()
public int getMidQueryTaskNum()
public int getLoQueryTaskNum()
public void checkForSuspendNonWriteTask() throws InterruptedException
#suspendNonWriteTasks(boolean)
verwenden eine reduzierte Synchronisierung um die Zahl der durchlaufenen synchronized-Bloecke
gering zu halten.
InterruptedException
public void getObjectsFromDav() throws ConfigurationException
ConfigurationException
public void subscribeObjects()
ConnectionManager
.
public void startAllTasks()
public void stopAllTasks() throws InterruptedException
InterruptedException
public void ringOfDeath(Task doomedTask)
RingOfDeathListener
ringOfDeath
in interface RingOfDeathListener
doomedTask
- Task, der gerade beendet wirdpublic static int calcOnlineArchivTaskIndex(long objID, long atgID, long aspID, int simVar)
objID
- Objekt-IDatgID
- Attributgruppen-IDaspID
- Aspekt-IDsimVar
- Simulationsvariante
public static int calcReqArchivTaskIndex(long objID, long atgID, long aspID, int simVar)
objID
- Objekt-IDatgID
- Attributgruppen-IDaspID
- Aspekt-IDsimVar
- Simulationsvariante
public void insertInArchiveQueueReq(long archiveTime, ArchiveData ad)
aTime
- Archivzeitrd
- Datensatzpublic boolean insertInSimVarDeleteQueue(ResultData resultData)
resultData
- Auftrag.
true
falls der Auftrag eingefügt werden konnte. false
sonst.public boolean insertSimVarParam(SimulationResultData resultData)
resultData
- Auftrag. Enthält Informationen, auf welche Datenidentifikationen sich das Archivsystem anmelden soll.
true
falls der Auftrag eingefügt werden konnte. false
sonst.public boolean insertInDeleteRegularQueue(ResultData resultData)
resultData
- Auftrag.
true
falls der Auftrag eingefügt werden konnte. false
sonst.public boolean insertInRequestQueue(ResultData resultData)
resultData
- Auftrag.
true
falls der Auftrag eingefügt werden konnte. false
sonst.public boolean insertInLZVQueue(ResultData resultData)
resultData
- Auftrag.
true
falls der Auftrag eingefügt werden konnte. false
sonst.public boolean insertInBackupQueue(ResultData resultData)
resultData
- Auftrag.
true
falls der Auftrag eingefügt werden konnte. false
sonst.public void insertCloseContainer(long objID, ArchiveTask.CloseContainerObject cco)
aTime
- Archivzeitrd
- Datensatzprotected void logSendMsgCapaExceeded(int maxsize, String qname, ResultData rd)
maxsize
- Kapazität der Warteschlangeqname
- Name der Warteschlangerd
- Datensatz.protected void logCapaNoLongerExceeded(int maxsize, String qname, int leftouts)
public float[][] getArchiveQueuesOnlineStatus()
public float[][] getArchiveQueuesRequestedStatus()
public float[][] getNonArchiveQueuesStatus()
public static long getTotalDSReceived()
resetDSCounter()
von getArchiveDataReceiver()
empfangenen Datensaetze, egal ob diese
archiviert werden oder nicht. Kann zur Test-Synchronisation verwendet werden.public static int getTotalOnlineQueuesCapa()
public double getQueueLoad()
public int countOnlineDataInQueues()
public void decrOnlineDataInQueues()
public ArchiveTask getOnlineArchiveTask(long objId, long atgId, long aspId, int simVar)
objID
- Objekt-IDatgID
- Attributgruppen-IDaspID
- Aspekt-IDsimVar
- Simulationsvariante
#calcArchivTaskIndex(long,long,long)
public ArchiveSettingsTask getArchiveSettingsTask()
ArchiveManager
beim Start einen
ArchiveSettingsTask.ArSSettingListener
einhaengen und darauf warten kann, dass die Bearbeitung der Archiveinstellungen
abgeschlossen ist. Das Archivsystem wartet beim Start auf die Archiv-Einstellungen, da es nicht sinnvoll ist, die ersten Sekunden mit Default-Werten
loszulaufen.
public SingleTask getSingleTask(int taskIndex)
taskIndex
- Index der internen SingleTask-Liste
public InQueuesMgr.ArchiveDataReceiver getArchiveDataReceiver()
ArchivConfig
meldet die zu archivierenden Daten mit dem Objekt als Empfaenger an, das von dieser Methode geliefert wird.
public InQueuesMgr.DataAckSender getDataAckSender()
ArchivConfig
meldet die Quittungen fuer die zu archivierenden Daten mit dem Objekt als Sender an, das von dieser Methode geliefert wird.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |