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."
}
Copy

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"
}
Copy

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"
}
Copy

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"
}
Copy

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 Standardsequenz instance_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