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_nameVARCHARis_initializedBOOLEANis_activeBOOLEAN
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_NAMEVARCHARWORKER_PROCEDURE_NAMEVARCHARWORK_SELECTOR_TYPEVARCHARWORK_SELECTOR_NAMEVARCHAREXPIRED_WORK_SELECTOR_NAMEVARCHAR
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_NAMEVARCHARWAREHOUSE_NAMEVARCHARDT_SHOULD_BE_STARTEDBOOLEANDT_TASK_SCHEDULEVARCHARDT_ALLOW_OVERLAPPING_EXECUTIONBOOLEANDT_USER_TASK_TIMEOUT_MSVARCHAR
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_SCHEMAVARCHAR
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_SCHEMAVARCHAR
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.REMOVE_INSTANCE()¶
Eingabeparameter:
INSTANCE_SCHEMAVARCHAR
Entfernt eine bestimmte Instanz von Task Reactor aus der Instanz-Registry und gibt die Antwort OK zurück. Wenn keine Instanzen mit dem angegebenen Namen existieren, wird keine Aktion ausgeführt.
Prozedur endet erfolgreich mit:
{
"response_code": "OK"
}
TASK_REACTOR.UPDATE_WAREHOUSE_INSTANCE¶
Eingabeparameter:
WAREHOUSE_NAMEVARCHARINSTANCE_SCHEMAVARCHAR
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_NAMEVARCHARPROCEDURE_TYPEVARCHAR
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_NAMEVARCHARTABLE_NAMEVARCHARSTREAM_NAMEVARCHAR
Hilfsmethode für Task Reactor; übernimmt das Erstellen einer Warteschlangentabelle mit dem Namen instance_schema_name.table_name und den folgenden Spalten:
IDSTRINGRESOURCE_IDSTRINGDISPATCHER_OPTIONSVARIANTWORKER_PAYLOADVARIANTTIMESTAMPDATETIME
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_NAMEVARCHARSEQUENCE_NAMEVARCHAR
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_NAMEVARCHARTABLE_NAMEVARCHARSEQUENCE_NAMEVARCHAR
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 NUMBERmit Standardsequenzinstance_schema_name.sequence_nameCREATED_ATDATETIMEUPDATED_ATDATETIMESTATUSSTRING
TASK_REACTOR.CREATE_WORKER_STATUS_TABLE¶
Eingabeparameter:
INSTANCE_SCHEMA_NAMEVARCHARTABLE_NAMEVARCHAR
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_IDNUMBERTIMESTAMPDATETIMESTATUSSTRING
TASK_REACTOR.CREATE_CONFIG_TABLE¶
Eingabeparameter:
INSTANCE_SCHEMA_NAMEVARCHARTABLE_NAMEVARCHARWORKER_PROCEDURE_NAMEVARCHARWORK_SELECTOR_TYPEVARCHARWORK_SELECTOR_NAMEVARCHAREXPIRED_WORK_SELECTOR_NAMEVARCHARIS_INSTANCE_REGISTEREDBOOLEAN
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_PROCEDUREWORK_SELECTOR_TYPEWORK_SELECTORSCHEMA