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_nameVARCHARis_initializedBOOLEANis_activeBOOLEAN
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_NAMEVARCHARWORKER_PROCEDURE_NAMEVARCHARWORK_SELECTOR_TYPEVARCHARWORK_SELECTOR_NAMEVARCHAREXPIRED_WORK_SELECTOR_NAMEVARCHAR
프로시저는 정확한 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_NAMEVARCHARWAREHOUSE_NAMEVARCHARDT_SHOULD_BE_STARTEDBOOLEANDT_TASK_SCHEDULEVARCHARDT_ALLOW_OVERLAPPING_EXECUTIONBOOLEANDT_USER_TASK_TIMEOUT_MSVARCHAR
이 프로시저는 동일한 데이터베이스 인스턴스 내에서 초기화되지 않은 모든 인스턴스를 시작합니다. 인스턴스가 존재하는지 또는 이미 초기화되지 않았는지 확인한 후 디스패처 작업을 생성하고 필요한 경우 이 작업을 시작합니다.
프로시저가 다음과 함께 성공적으로 종료되었습니다.
{
"response_code": "OK",
"message": "Instance has been initialized successfully."
}
가능한 원인은 다음과 같을 수 있습니다.
INSTANCE_NOT_FOUND- 인스턴스가 없습니다.INSTANCE_ALREADY_INITIALIZED- 이 이름을 갖는 인스턴스가 이미 초기화되었습니다.
TASK_REACTOR.PAUSE_INSTANCE¶
입력 매개 변수:
INSTANCE_SCHEMAVARCHAR
프로시저는 지정된 Task Reactor 인스턴스를 일시 중지하는 프로세스를 시작하고 OK 응답을 반환합니다. 모든 워커 작업과 디스패처 작업을 비동기적으로 중지시키는 작업을 시작합니다. 워커 작업이 이미 수집을 수행 중일 경우, 작업은 즉시 중지되지 않지만 수집이 완료된 후 작업이 중지됩니다.
참고
이 프로시저의 논리는 커넥터 일시 중지 에서 이미 사용되었으므로 전체 커넥터를 중지하기 위한 일부로 이 프로시저를 사용할 필요는 없습니다.
프로시저가 다음과 함께 성공적으로 종료되었습니다.
{
"response_code": "OK"
}
TASK_REACTOR.RESUME_INSTANCE()¶
입력 매개 변수:
INSTANCE_SCHEMAVARCHAR
프로시저는 지정된 Task Reactor 인스턴스를 재개하는 프로세스를 시작하고 OK 응답을 반환합니다. 디스패처 작업을 재개하고 이미 작업이 할당된 모든 워커 작업을 비동기적으로 재개하는 작업을 시작합니다.
참고
이 프로시저의 논리는 커넥터 재개 에서 이미 사용되었으므로 전체 커넥터를 재개하기 위한 일부로 이 프로시저를 사용할 필요는 없습니다.
프로시저가 다음과 함께 성공적으로 종료되었습니다.
{
"response_code": "OK"
}
TASK_REACTOR.REMOVE_INSTANCE()¶
입력 매개 변수:
INSTANCE_SCHEMAVARCHAR
인스턴스 레지스트리에서 지정된 작업 리액터의 인스턴스를 제거하고 OK 응답을 반환합니다. 제공된 이름으로 인스턴스가 존재하지 않으면 작업이 수행되지 않습니다.
프로시저가 다음과 함께 성공적으로 종료되었습니다.
{
"response_code": "OK"
}
TASK_REACTOR.UPDATE_WAREHOUSE_INSTANCE¶
입력 매개 변수:
WAREHOUSE_NAMEVARCHARINSTANCE_SCHEMAVARCHAR
프로시저는 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_NAMEVARCHARPROCEDURE_TYPEVARCHAR
이 프로시저는 정의된 프로시저가 존재하지 않는지 유효성 검사한 후 새로운 예외를 발생시킵니다.
가능한 원인은 다음과 같을 수 있습니다.
WORKER_PROCEDURE_NOT_FOUND_EXCEPTION- 워커 프로시저를 찾을 수 없습니다.WORK_SELECTOR_PROCEDURE_NOT_FOUND_EXCEPTION- 작업 선택기 프로시저를 찾을 수 없습니다.DEFAULT_PROCEDURE_VALIDATION_EXCEPTION- 프로시저를 찾을 수 없습니다.
TASK_REACTOR.CREATE_QUEUE¶
입력 매개 변수:
INSTANCE_SCHEMA_NAMEVARCHARTABLE_NAMEVARCHARSTREAM_NAMEVARCHAR
Task Reactor 의 도우미 메서드로, 이름이 instance_schema_name.table_name 이고 다음 열이 있는 큐 테이블을 생성합니다.
IDSTRINGRESOURCE_IDSTRINGDISPATCHER_OPTIONSVARIANTWORKER_PAYLOADVARIANTTIMESTAMPDATETIME
그런 다음 스트림이 아직 존재하지 않는 경우 이름이 instance_schema_name.stream_name 인 스트림을 생성합니다.
TASK_REACTOR.CREATE_WORKER_REGISTRY_SEQUENCE¶
입력 매개 변수:
INSTANCE_SCHEMA_NAMEVARCHARSEQUENCE_NAMEVARCHAR
Task Reactor 의 도우미 메서드로, instance_schema_name.sequence_name 시퀀스 이름으로 워커 레지스트리에 대한 시퀀스를 생성합니다.
TASK_REACTOR.CREATE_WORKER_REGISTRY¶
입력 매개 변수:
INSTANCE_SCHEMA_NAMEVARCHARTABLE_NAMEVARCHARSEQUENCE_NAMEVARCHAR
Task Reactor 의 도우미 메서드로, 이름이 instance_schema_name.table_name 이고 다음 열을 갖는 테이블로 구성된 워커 레지스트리를 생성합니다.
기본
instance_schema_name.sequence_name시퀀스를 갖는WORKER_ID NUMBERCREATED_ATDATETIMEUPDATED_ATDATETIMESTATUSSTRING
TASK_REACTOR.CREATE_WORKER_STATUS_TABLE¶
입력 매개 변수:
INSTANCE_SCHEMA_NAMEVARCHARTABLE_NAMEVARCHAR
Task Reactor 의 도우미 메서드로, 이름이 instance_schema_name.table_name 이고 다음 열을 갖는 워커에 대한 상태 테이블을 생성합니다.
WORKER_IDNUMBERTIMESTAMPDATETIMESTATUSSTRING
TASK_REACTOR.CREATE_CONFIG_TABLE¶
입력 매개 변수:
INSTANCE_SCHEMA_NAMEVARCHARTABLE_NAMEVARCHARWORKER_PROCEDURE_NAMEVARCHARWORK_SELECTOR_TYPEVARCHARWORK_SELECTOR_NAMEVARCHAREXPIRED_WORK_SELECTOR_NAMEVARCHARIS_INSTANCE_REGISTEREDBOOLEAN
Task Reactor 의 도우미 메서드로, 키와 값 열을 갖는 이름이 instance_schema_name.table_name 인 구성 테이블을 생성합니다. 다음 값으로 아직 등록되지 않은 경우 구성 데이터를 테이블에 삽입합니다.
WORKER_PROCEDUREWORK_SELECTOR_TYPEWORK_SELECTORSCHEMA