SQL-Referenz zum Task Reactor¶
Datenbankobjekte und Prozeduren¶
Die folgenden Datenbankobjekte werden über die Datei task_reactor.sql
erstellt.
TASK_REACTOR SCHEMA¶
Versioniertes Schema, das ein Datenbankobjekt des Task Reactor im Konnektor enthält.
TASK_REACTOR_INSTANCES SCHEMA¶
Nicht versioniertes Schema, das ein Instanzdatenbankobjekt des Task Reactor im Konnektor enthält.
TASK_REACTOR_INSTANCES.INSTANCE_REGISTRY¶
Diese Tabelle wird erstellt, um die Daten über Task Reactor-Instanzen zu speichern, damit vorhandene Instanzen während der Laufzeit der Anwendung verfolgt und verwaltet werden können. Die Tabelle wird im Schema TASK_REACTOR_INSTANCES
erstellt.
instance_name
VARCHAR
is_initialized
BOOLEAN
is_active
BOOLEAN
TASK_REACTOR.DISPATCHER(INSTANCE_SCHEMA_NAME VARCHAR)¶
Diese Prozedur ruft Java-DispatcherHandler.dispatchWorkItems
auf und ermöglicht das Versenden von Work-Elemente.
TASK_REACTOR.SET_WORKERS_NUMBER (WORKERS_NUMBER NUMBER, INSTANCE_SCHEMA_NAME VARCHAR)¶
Diese Prozedur ruft Java-SetWorkersNumberHandler.setWorkersNumber
auf und ermöglicht das Festlegen der Anzahl der Worker.
TASK_REACTOR.CREATE_INSTANCE_OBJECTS¶
Eingabeparameter:
INSTANCE_SCHEMA_NAME
VARCHAR
WORKER_PROCEDURE_NAME
VARCHAR
WORK_SELECTOR_TYPE
VARCHAR
WORK_SELECTOR_NAME
VARCHAR
EXPIRED_WORK_SELECTOR_NAME
VARCHAR
Die Prozedur erstellt alle Instanzobjekte, die für den genauen Ablauf von Task reactor
erforderlich sind, und validiert die Instanzen, die nicht bereits initialisiert sein sollten. Am Ende des Prozesses wird ein neuer Eintrag in den Registry-Datensatz zur Instanz in die Tabelle eingefügt.
Mögliche Fehler sind:
INSTANCE_NOT_FOUND
– Instanz mit diesem Namen existiert nicht.INSTANCE_ALREADY_INITIALIZED
– Instanz mit diesem Namen ist bereits initialisiert.DEFAULT_PROCEDURE_VALIDATION_EXCEPTION
– Prozedur nicht gefunden.SCHEMA_WITH_THE_SAME_NAME_ALREADY_EXISTS
– Schema mit demselben Namen existiert bereits.CREATING_TR_INSTANCE_EXCEPTION
– Beim Erstellen einer neuen Instanz von Task Reactor ist etwas Unerwartetes passiert. Es wurde noch keine Instanz erstellt.
TASK_REACTOR.INITIALIZE_INSTANCE¶
Eingabeparameter:
INSTANCE_SCHEMA_NAME
VARCHAR
WAREHOUSE_NAME
VARCHAR
DT_SHOULD_BE_STARTED
BOOLEAN
DT_TASK_SCHEDULE
VARCHAR
DT_ALLOW_OVERLAPPING_EXECUTION
BOOLEAN
DT_USER_TASK_TIMEOUT_MS
VARCHAR
Die Prozedur startet alle nicht initialisierten Instanzen innerhalb der gleichen Datenbankinstanz. Prüft, ob eine Instanz vorhanden ist oder ob sie noch nicht initialisiert wurde, und erstellt dann Dispatcher-Tasks und startet diese Tasks, wenn dies erforderlich ist.
Prozedur endet erfolgreich mit:
{
"response_code": "OK",
"message": "Instance has been initialized successfully."
}
Mögliche Fehler sind:
INSTANCE_NOT_FOUND
– Instanz existiert nicht.INSTANCE_ALREADY_INITIALIZED
– Instanz mit diesem Namen ist bereits initialisiert.
TASK_REACTOR.PAUSE_INSTANCE¶
Eingabeparameter:
INSTANCE_SCHEMA
VARCHAR
Prozedur startet den Prozess des Anhaltens einer bestimmten Instanz von Task Reactor und gibt als Antwort OK zurück. Startet einen Job, der asynchron alle Worker-Tasks und die Dispatcher-Task anhält. Wenn eine Worker-Task bereits eine Datenaufnahme ausgeführt hat, wird die Task nicht sofort gestoppt, sondern erst, nachdem die Datenaufnahme abgeschlossen ist.
Bemerkung
Die Logik dieser Prozedur wird bereits in Konnektor anhalten verwendet, sodass es nicht erforderlich ist, diese Prozedur als Teil des Anhaltens des gesamten Konnektors zu verwenden.
Prozedur endet erfolgreich mit:
{
"response_code": "OK"
}
TASK_REACTOR.RESUME_INSTANCE¶
Eingabeparameter:
INSTANCE_SCHEMA
VARCHAR
Die Prozedur startet den Prozess des Fortsetzens einer bestimmten Instanz von Task Reactor und gibt als Antwort OK zurück. Setzt die Dispatcher-Task fort und startet einen Job, der asynchron alle Worker-Tasks fortsetzt, denen bereits Arbeit zugewiesen wurde.
Bemerkung
Die Logik dieser Prozedur wird bereits in Konnektor fortsetzen verwendet, sodass es nicht erforderlich ist, diese Prozedur als Teil des Fortsetzens des gesamten Konnektors zu verwenden.
Prozedur endet erfolgreich mit:
{
"response_code": "OK"
}
TASK_REACTOR.UPDATE_WAREHOUSE_INSTANCE¶
Eingabeparameter:
WAREHOUSE_NAME
VARCHAR
INSTANCE_SCHEMA
VARCHAR
Die Prozedur startet den Prozess der Änderung des Warehouses für eine bestimmte Instanz von Task Reactor. Ändert das Warehouse der Dispatcher-Task und startet dann einen Job, der asynchron das Warehouse aller Worker-Tasks ändert.
Bemerkung
Die Logik dieser Prozedur wird bereits in Warehouse aktualisieren verwendet, sodass es nicht erforderlich ist, diese Prozedur als Teil des Aktualisierens des Warehouses für den gesamten Konnektor zu verwenden.
Prozedur endet erfolgreich mit:
{
"response_code": "OK"
}
Mögliche Fehler sind:
INSTANCE_NOT_FOUND
– Gegebene Instanz existiert nicht.TASK_REACTOR_INSTANCE_IS_ACTIVE
– Gegebene Task Reactor-Instanz wurde vor Verwendung dieser Prozedur nicht angehalten.
Interne Prozedur¶
Alle unten aufgeführten Prozeduren sind nur die interne Verwendung im task_reactor
-Setup-Skript bestimmt und sollten nicht extern verwendet werden.
TASK_REACTOR.CREATE_INSTANCE_SCHEMA (INSTANCE_SCHEMA_NAME VARCHAR)¶
Diese Prozedur erstellt ein neues Schema mit dem Bezeichner instance_schema_name
und löst dann eine neue Ausnahme aus, wenn das Schema nicht erstellt werden konnte.
Mögliche Fehler sind:
SCHEMA_WITH_THE_SAME_NAME_ALREADY_EXISTS
– Schema mit demselben Namen existiert bereits.
TASK_REACTOR.VALIDATE_PROCEDURE_EXISTENCE¶
Eingabeparameter:
PROCEDURE_NAME
VARCHAR
PROCEDURE_TYPE
VARCHAR
Diese Prozedur prüft, ob definierte Prozeduren nicht existieren und löst dann eine neue Ausnahme aus.
Mögliche Fehler sind:
WORKER_PROCEDURE_NOT_FOUND_EXCEPTION
– Worker-Prozedur nicht gefunden.WORK_SELECTOR_PROCEDURE_NOT_FOUND_EXCEPTION
– Work-Selektor-Prozedur nicht gefunden.DEFAULT_PROCEDURE_VALIDATION_EXCEPTION
– Prozedur nicht gefunden.
TASK_REACTOR.CREATE_QUEUE¶
Eingabeparameter:
INSTANCE_SCHEMA_NAME
VARCHAR
TABLE_NAME
VARCHAR
STREAM_NAME
VARCHAR
Hilfsmethode für Task Reactor
; übernimmt das Erstellen einer Warteschlangentabelle mit dem Namen instance_schema_name.table_name
und den folgenden Spalten:
ID
STRING
RESOURCE_ID
STRING
DISPATCHER_OPTIONS
VARIANT
WORKER_PAYLOAD
VARIANT
TIMESTAMP
DATETIME
Erstellt dann einen Stream mit dem Namen instance_schema_name.stream_name
, falls dieser noch nicht existiert.
TASK_REACTOR.CREATE_WORKER_REGISTRY_SEQUENCE¶
Eingabeparameter:
INSTANCE_SCHEMA_NAME
VARCHAR
SEQUENCE_NAME
VARCHAR
Hilfsmethode für Task Reactor
; übernimmt das Erstellen einer Sequenz für die Worker-Registry mit dem Sequenznamen instance_schema_name.sequence_name
.
TASK_REACTOR.CREATE_WORKER_REGISTRY¶
Eingabeparameter:
INSTANCE_SCHEMA_NAME
VARCHAR
TABLE_NAME
VARCHAR
SEQUENCE_NAME
VARCHAR
Hilfsmethode für Task Reactor
; übernimmt das Erstellen von Worker-Registrys, bestehend aus einer Tabelle mit dem Namen instance_schema_name.table_name
und den Spalten:
WORKER_ID NUMBER
mit Standardsequenzinstance_schema_name.sequence_name
CREATED_AT
DATETIME
UPDATED_AT
DATETIME
STATUS
STRING
TASK_REACTOR.CREATE_WORKER_STATUS_TABLE¶
Eingabeparameter:
INSTANCE_SCHEMA_NAME
VARCHAR
TABLE_NAME
VARCHAR
Hilfsmethode für Task Reactor
; übernimmt das Erstellen einer Statustabelle für einen Worker mit dem Namen instance_schema_name.table_name
und den Spalten:
WORKER_ID
NUMBER
TIMESTAMP
DATETIME
STATUS
STRING
TASK_REACTOR.CREATE_CONFIG_TABLE¶
Eingabeparameter:
INSTANCE_SCHEMA_NAME
VARCHAR
TABLE_NAME
VARCHAR
WORKER_PROCEDURE_NAME
VARCHAR
WORK_SELECTOR_TYPE
VARCHAR
WORK_SELECTOR_NAME
VARCHAR
EXPIRED_WORK_SELECTOR_NAME
VARCHAR
IS_INSTANCE_REGISTERED
BOOLEAN
Hilfsmethode für Task Reactor
; übernimmt das Erstellen einer Konfigurationstabelle namens instance_schema_name.table_name
mit Schlüssel- und Wertespalten. Fügt anschließend die Konfigurationsdaten in die Tabelle ein, wenn diese nicht bereits mit den folgenden Werten registriert sind:
WORKER_PROCEDURE
WORK_SELECTOR_TYPE
WORK_SELECTOR
SCHEMA