Pausa do conector¶
A pausa do conector está disponível após o assistente. Pode ser executado após a etapa Finalize Configuration
. 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.PAUSE_CONNECTOR()
. Ele pode ser personalizado substituindo-o em SQL ou usando PauseConnectorHandlerBuilder
. O processo reverso de pausar o conector, permitindo que o usuário o reinicie, é Retomada do conector.
Chamar este procedimento requer que o usuário tenha a função do aplicativo ADMIN
atribuída.
A etapa do conector de pausa 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 (PAUSING)
Retorno de chamada interno
Como pausar o Task Reactor (se o Task Reactor estiver habilitado)
Atualização de status (PAUSED)
Requisitos¶
O conector de pausa requer pelo menos os seguintes arquivos SQL a serem executados durante a instalação do aplicativo nativo:
core.sql
configuration/app_config.sql
lifecycle/pause.sql
Recomendado:
configuration/finalize_configuration.sql
Validação de privilégios¶
Para pausar o conector, o privilégio EXECUTE TASK
deve ser concedido ao aplicativo.
Esta validação não pode ser substituída usando PauseConnectorHandlerBuilder
nem sobrescrevendo um procedimento armazenado. No entanto, é possível implementar um manipulador personalizado.
Validação de status¶
Para pausar o conector, o status interno do conector precisa ser STARTED
.
Esta validação não pode ser substituída usando PauseConnectorHandlerBuilder
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.PAUSE_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 PauseConnectorHandlerBuilder
e fornecer implementação personalizada da interface PauseConnectorStateValidator
.
Retorno de chamada interno¶
O retorno de chamada interno é outra etapa personalizável. Por padrão, ele invoca PUBLIC.PAUSE_CONNECTOR_INTERNAL()
, que retorna 'response_code': 'OK'
. Este procedimento permite que o usuário execute quaisquer tarefas adicionais necessárias ao pausar o conector. Por exemplo, pausando tarefas específicas do conector adicional. Pode ser sobrescrito através do script SQL ou usando um PauseConnectorHandlerBuilder
para fornecer implementação personalizada da interface PauseConnectorCallback
.
Atualização de status¶
Quando todas as fases acima forem concluídas com sucesso, o status interno do conector será atualizado para:
{
"status": "PAUSED",
"configurationStatus": "FINALIZED"
}
Para o diagrama completo de transições de estado, veja Fluxo do conector.
Resposta¶
Resposta bem-sucedida¶
Quando o procedimento pausa com sucesso todas as tarefas em segundo plano e altera seu status para PAUSED, então a mensagem Connector successfully paused.
será retornada diretamente do corpo do método PauseConnectorHandler
. 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[STARTED, PAUSING]
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