Retomada do conector¶
A retomada do conector está disponível após o assistente. Pode ser executado após o Finalize Configuration
adicionalmente com Pause Connector
. Esta etapa permite que o usuário manipule o status do conector após ele ser iniciado. O ponto de entrada para esta fase é um procedimento chamado PUBLIC.RESUME_CONNECTOR()
. Ele pode ser personalizado substituindo-o em SQL ou usando ResumeConnectorHandlerBuilder
. O processo reverso de retomar o conector, permitindo que o usuário o suspenda, é Pausa do conector.
Chamar este procedimento requer que o usuário tenha a função do aplicativo ADMIN
atribuída.
A etapa de retomada do conector consiste internamente em várias fases. Alguns deles são totalmente personalizáveis e, por padrão, não fazem nada. As fases são as seguintes:
Validação de privilégios
Validação de status
Validação de estado
Atualização de status (STARTING)
Retorno de chamada interno
Retomada do Task Reactor (se o Task Reactor estiver habilitado)
Atualização de status (STARTED)
Requisitos¶
A retomada do conector requer que pelo menos os seguintes arquivos SQL sejam executados durante a instalação do aplicativo nativo:
core.sql
configuration/app_config.sql
lifecycle/resume.sql
Recomendado:
lifecycle/pause.sql
Recomendado:
configuration/finalize_configuration.sql
Validação de privilégios¶
Para retomar o conector, o privilégio EXECUTE TASK
deve ser concedido ao aplicativo.
Esta validação não pode ser substituída usando ResumeConnectorHandlerBuilder
nem sobrescrevendo o procedimento armazenado. No entanto, é possível implementar um manipulador personalizado.
Validação de status¶
Para retomar o conector, o status interno do conector precisa ser PAUSED
.
Esta validação não pode ser substituída usando ResumeConnectorHandlerBuilder
nem sobrescrevendo o procedimento armazenado. No entanto, é possível implementar um manipulador personalizado.
Validação de estado¶
Caso haja algumas validações personalizadas adicionais que precisam ser satisfeitas, há um procedimento armazenado PUBLIC.RESUME_CONNECTOR_VALIDATE()
, que pode ser personalizado pelo usuário. Por padrão, este procedimento apenas retorna 'response_code': 'OK'
. O procedimento pode ser personalizado por meio de sobreposição através do SQL ou usando ResumeConnectorHandlerBuilder
e fornecer uma implementação personalizada da interface ResumeConnectorStateValidator
.
Retorno de chamada interno¶
O retorno de chamada interno é outra etapa personalizável. Por padrão, ele invoca PUBLIC.RESUME_CONNECTOR_INTERNAL()
, que retorna 'response_code': 'OK'
. Este procedimento permite que o usuário execute quaisquer tarefas adicionais necessárias ao retomar o conector. Por exemplo, retomar tarefas adicionais específicas do conector. Pode ser sobrescrito através do script SQL ou usando um ResumeConnectorHandlerBuilder
para fornecer implementação personalizada da interface ResumeConnectorCallback
.
Atualização de status¶
Quando todas as fases acima forem concluídas com sucesso, o status interno do conector será atualizado para:
{
"status": "STARTED",
"configurationStatus": "FINALIZED"
}
Para o diagrama completo de transições de estado, veja Fluxo do conector.
Resposta¶
Resposta bem-sucedida¶
Quando o procedimento retoma com sucesso todas as tarefas em segundo plano e altera o status tocSTARTED, então a mensagem Connector successfully resumed.
será retornada diretamente do corpo do método ResumeConnectorHandler. Recomenda-se usar o seguinte formato:
{ "response_code": "OK" }
Resposta de erro¶
Em caso de erro, a resposta seguirá o formato abaixo:
{ "response_code": "<ERROR_CODE>", "message": "error message" }
Possíveis códigos de erro incluem:
INVALID_CONNECTOR_STATUS
- O procedimento foi chamado no conector com estado diferente de[PAUSED, STARTING]
CONNECTOR_STATUS_NOT_FOUND
- O registro de status do conector não existe no banco de dados (independente da entrada do usuário neste estágio - um erro interno)ROLLBACK_CODE
- Ocorreu um erro, mas as alterações foram revertidas com sucesso.INTERNAL_ERROR
- Algo deu errado internamente, a mensagem deve ser descritivaUNKNOWN_ERROR_CODE
- Ocorreu um erro desconhecido e o conector agora está em um estado não especificado