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:

  1. Validação de privilégios

  2. Validação de status

  3. Validação de estado

  4. Atualização de status (STARTING)

  5. Retorno de chamada interno

  6. Retomada do Task Reactor (se o Task Reactor estiver habilitado)

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

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"
}
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 [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 descritiva

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