Task Reactor SQL 참조¶
데이터베이스 오브젝트 및 프로시저¶
다음 데이터베이스 오브젝트는 task_reactor.sql
파일을 통해 생성됩니다.
TASK_REACTOR SCHEMA¶
커넥터에서 Task Reactor의 일부 데이터베이스 오브젝트가 포함된 버전이 지정된 스키마입니다.
TASK_REACTOR_INSTANCES SCHEMA¶
커넥터에서 Task Reactor의 일부 인스턴스 데이터베이스 오브젝트가 포함된 버전이 지정되지 않은 스키마입니다.
TASK_REACTOR_INSTANCES.INSTANCE_REGISTRY¶
이 테이블은 애플리케이션 런타임 동안 기존 인스턴스를 추적하고 관리할 수 있도록 Task Reactor 인스턴스에 대한 데이터를 저장하기 위해 생성되었습니다. 이 테이블은 TASK_REACTOR_INSTANCES
스키마에 생성됩니다.
instance_name
VARCHAR
is_initialized
BOOLEAN
is_active
BOOLEAN
TASK_REACTOR.DISPATCHER(INSTANCE_SCHEMA_NAME VARCHAR)¶
이 프로시저는 Java DispatcherHandler.dispatchWorkItems
를 호출하고 작업 항목을 디스패치할 수 있습니다.
TASK_REACTOR.SET_WORKERS_NUMBER (WORKERS_NUMBER NUMBER, INSTANCE_SCHEMA_NAME VARCHAR)¶
이 프로시저는 Java SetWorkersNumberHandler.setWorkersNumber
를 호출하고 워커 수를 설정할 수 있습니다.
TASK_REACTOR.CREATE_INSTANCE_OBJECTS¶
입력 매개 변수:
INSTANCE_SCHEMA_NAME
VARCHAR
WORKER_PROCEDURE_NAME
VARCHAR
WORK_SELECTOR_TYPE
VARCHAR
WORK_SELECTOR_NAME
VARCHAR
EXPIRED_WORK_SELECTOR_NAME
VARCHAR
프로시저는 정확한 Task reactor
흐름에 필요한 모든 인스턴스 오브젝트를 생성하고 이미 초기화되지 않아야 하는 오브젝트의 유효성을 검사합니다. 프로세스가 끝나면 새로운 인스턴스 레지스트리 레코드가 테이블에 삽입됩니다.
가능한 원인은 다음과 같을 수 있습니다.
INSTANCE_NOT_FOUND
- 이 이름을 갖는 인스턴스가 없습니다.INSTANCE_ALREADY_INITIALIZED
- 이 이름을 갖는 인스턴스가 이미 초기화되었습니다.DEFAULT_PROCEDURE_VALIDATION_EXCEPTION
- 프로시저를 찾을 수 없습니다.SCHEMA_WITH_THE_SAME_NAME_ALREADY_EXISTS
- 동일한 이름의 스키마가 이미 있습니다.CREATING_TR_INSTANCE_EXCEPTION
- Task Reactor의 새 인스턴스를 생성하는 동안 예기치 못한 문제가 발생했습니다. 인스턴스가 생성되지 않았습니다.
TASK_REACTOR.INITIALIZE_INSTANCE¶
입력 매개 변수:
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
이 프로시저는 동일한 데이터베이스 인스턴스 내에서 초기화되지 않은 모든 인스턴스를 시작합니다. 인스턴스가 존재하는지 또는 이미 초기화되지 않았는지 확인한 후 디스패처 작업을 생성하고 필요한 경우 이 작업을 시작합니다.
프로시저가 다음과 함께 성공적으로 종료되었습니다.
{
"response_code": "OK",
"message": "Instance has been initialized successfully."
}
가능한 원인은 다음과 같을 수 있습니다.
INSTANCE_NOT_FOUND
- 인스턴스가 없습니다.INSTANCE_ALREADY_INITIALIZED
- 이 이름을 갖는 인스턴스가 이미 초기화되었습니다.
TASK_REACTOR.PAUSE_INSTANCE¶
입력 매개 변수:
INSTANCE_SCHEMA
VARCHAR
프로시저는 지정된 Task Reactor 인스턴스를 일시 중지하는 프로세스를 시작하고 OK 응답을 반환합니다. 모든 워커 작업과 디스패처 작업을 비동기적으로 중지시키는 작업을 시작합니다. 워커 작업이 이미 수집을 수행 중일 경우, 작업은 즉시 중지되지 않지만 수집이 완료된 후 작업이 중지됩니다.
참고
이 프로시저의 논리는 커넥터 일시 중지 에서 이미 사용되었으므로 전체 커넥터를 중지하기 위한 일부로 이 프로시저를 사용할 필요는 없습니다.
프로시저가 다음과 함께 성공적으로 종료되었습니다.
{
"response_code": "OK"
}
TASK_REACTOR.RESUME_INSTANCE¶
입력 매개 변수:
INSTANCE_SCHEMA
VARCHAR
프로시저는 지정된 Task Reactor 인스턴스를 재개하는 프로세스를 시작하고 OK 응답을 반환합니다. 디스패처 작업을 재개하고 이미 작업이 할당된 모든 워커 작업을 비동기적으로 재개하는 작업을 시작합니다.
참고
이 프로시저의 논리는 커넥터 재개 에서 이미 사용되었으므로 전체 커넥터를 재개하기 위한 일부로 이 프로시저를 사용할 필요는 없습니다.
프로시저가 다음과 함께 성공적으로 종료되었습니다.
{
"response_code": "OK"
}
TASK_REACTOR.UPDATE_WAREHOUSE_INSTANCE¶
입력 매개 변수:
WAREHOUSE_NAME
VARCHAR
INSTANCE_SCHEMA
VARCHAR
프로시저는 Task Reactor의 지정된 인스턴스에 대한 웨어하우스를 변경하는 프로세스를 시작합니다. 디스패처 작업의 웨어하우스를 변경한 다음 모든 워커 작업의 웨어하우스를 비동기적으로 변경하는 작업을 시작합니다.
참고
이 프로시저의 논리는 이미 웨어하우스 업데이트 에서 사용되었으므로, 전체 커넥터에 대한 웨어하우스 업데이트의 일부로 이 프로시저를 사용할 필요가 없습니다.
프로시저가 다음과 함께 성공적으로 종료되었습니다.
{
"response_code": "OK"
}
가능한 원인은 다음과 같을 수 있습니다.
INSTANCE_NOT_FOUND
- 지정된 인스턴스가 없습니다.TASK_REACTOR_INSTANCE_IS_ACTIVE
- 이 프로시저를 사용하기 전에 지정된 Task Reactor 인스턴스가 일시 중지되지 않았습니다.
내부 프로시저¶
아래의 모든 프로시저는 task_reactor
설정 스크립트 내부용으로만 사용되며 외부에서 사용해서는 안 됩니다.
TASK_REACTOR.CREATE_INSTANCE_SCHEMA(INSTANCE_SCHEMA_NAME VARCHAR)¶
이 프로시저는 식별자가 instance_schema_name
인 새 스키마를 생성한 다음 스키마를 생성할 수 없는 경우 새 예외를 throw합니다.
가능한 원인은 다음과 같을 수 있습니다.
SCHEMA_WITH_THE_SAME_NAME_ALREADY_EXISTS
- 동일한 이름의 스키마가 이미 있습니다.
TASK_REACTOR.VALIDATE_PROCEDURE_EXISTENCE¶
입력 매개 변수:
PROCEDURE_NAME
VARCHAR
PROCEDURE_TYPE
VARCHAR
이 프로시저는 정의된 프로시저가 존재하지 않는지 유효성 검사한 후 새로운 예외를 발생시킵니다.
가능한 원인은 다음과 같을 수 있습니다.
WORKER_PROCEDURE_NOT_FOUND_EXCEPTION
- 워커 프로시저를 찾을 수 없습니다.WORK_SELECTOR_PROCEDURE_NOT_FOUND_EXCEPTION
- 작업 선택기 프로시저를 찾을 수 없습니다.DEFAULT_PROCEDURE_VALIDATION_EXCEPTION
- 프로시저를 찾을 수 없습니다.
TASK_REACTOR.CREATE_QUEUE¶
입력 매개 변수:
INSTANCE_SCHEMA_NAME
VARCHAR
TABLE_NAME
VARCHAR
STREAM_NAME
VARCHAR
Task Reactor
의 도우미 메서드로, 이름이 instance_schema_name.table_name
이고 다음 열이 있는 큐 테이블을 생성합니다.
ID
STRING
RESOURCE_ID
STRING
DISPATCHER_OPTIONS
VARIANT
WORKER_PAYLOAD
VARIANT
TIMESTAMP
DATETIME
그런 다음 스트림이 아직 존재하지 않는 경우 이름이 instance_schema_name.stream_name
인 스트림을 생성합니다.
TASK_REACTOR.CREATE_WORKER_REGISTRY_SEQUENCE¶
입력 매개 변수:
INSTANCE_SCHEMA_NAME
VARCHAR
SEQUENCE_NAME
VARCHAR
Task Reactor
의 도우미 메서드로, instance_schema_name.sequence_name
시퀀스 이름으로 워커 레지스트리에 대한 시퀀스를 생성합니다.
TASK_REACTOR.CREATE_WORKER_REGISTRY¶
입력 매개 변수:
INSTANCE_SCHEMA_NAME
VARCHAR
TABLE_NAME
VARCHAR
SEQUENCE_NAME
VARCHAR
Task Reactor
의 도우미 메서드로, 이름이 instance_schema_name.table_name
이고 다음 열을 갖는 테이블로 구성된 워커 레지스트리를 생성합니다.
기본
instance_schema_name.sequence_name
시퀀스를 갖는WORKER_ID NUMBER
CREATED_AT
DATETIME
UPDATED_AT
DATETIME
STATUS
STRING
TASK_REACTOR.CREATE_WORKER_STATUS_TABLE¶
입력 매개 변수:
INSTANCE_SCHEMA_NAME
VARCHAR
TABLE_NAME
VARCHAR
Task Reactor
의 도우미 메서드로, 이름이 instance_schema_name.table_name
이고 다음 열을 갖는 워커에 대한 상태 테이블을 생성합니다.
WORKER_ID
NUMBER
TIMESTAMP
DATETIME
STATUS
STRING
TASK_REACTOR.CREATE_CONFIG_TABLE¶
입력 매개 변수:
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
Task Reactor
의 도우미 메서드로, 키와 값 열을 갖는 이름이 instance_schema_name.table_name
인 구성 테이블을 생성합니다. 다음 값으로 아직 등록되지 않은 경우 구성 데이터를 테이블에 삽입합니다.
WORKER_PROCEDURE
WORK_SELECTOR_TYPE
WORK_SELECTOR
SCHEMA