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:

  1. Validação de privilégios

  2. Validação de status

  3. Validação de estado

  4. Atualização de status (PAUSING)

  5. Retorno de chamada interno

  6. Como pausar o Task Reactor (se o Task Reactor estiver habilitado)

  7. 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"
}
Copy

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"
}
Copy

Resposta de erro

Em caso de erro, a resposta seguirá o formato abaixo:

{
  "response_code": "<ERROR_CODE>",
  "message": "error message"
}
Copy

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 descritiva

  • UNKNOWN_ERROR_CODE - Ocorreu um erro desconhecido e o conector agora está em um estado não especificado