2020.10.14
Data de lançamento: 7 de dezembro de 2021
Neste patch, alteramos a lógica por trás de gatilhos de fila. Agora, tanto os itens de fila Novos quanto os Em progresso são contabilizados ao calcular o número de trabalhos de destino que devem ser atingidos. Anteriormente, apenas novos itens eram considerados e, assim, sempre que havia menos itens em progresso que itens novos, nenhum trabalho era iniciado apesar de haver robôs ociosos. Isso aconteceu porque o número de trabalhos em execução excederia o número de trabalhos destino (ou seja,itens de fila processando ativamente).
Aqui está um exemplo para entender melhor o comportamento antes e após a alteração:
Vamos supor que tenhamos um gatilho de fila definido da seguinte maneira:
Campo |
Valor |
---|---|
Número mínimo de itens para disparar o primeiro trabalho: |
1 |
Número máximo de trabalhos pendentes e em execução permitidos ao mesmo tempo |
100 |
Outro trabalho é disparado para cada ___ novos itens |
1 |
Etapas de replicação e comportamento anteriores a essa alteração:
- Adicione 3 itens à fila. O Orchestrator calcula o número de trabalhos de destino com base no número de novos itens => 3 trabalhos de destino são necessários. O Orchestrator inicia 3 trabalhos para processar os 3 itens da fila. Os 3 itens passam para o estado Em progresso.
- Adicione mais 2 itens à fila. O Orchestrator calcula o número de trabalhos de destino com base no número de novos itens => 2 trabalhos de destino são necessários. O Orchestrator não inicia nenhum outro trabalho porque o número de trabalhos de destino é inferior ao número de trabalhos em execução.
- Adicione mais 2 itens à fila. O Orchestrator calcula o número de trabalhos de destino com base no número de novos itens => 4 (2+2) trabalhos de destino são necessários. O Orchestrator inicia 1 trabalho para atingir o alvo de 4.
Etapas de replicação e comportamento após essa alteração:
- Adicione 3 itens à fila. O Orchestrator calcula o número de trabalhos de destino com base no número de novos itens e itens em progresso => 3 trabalhos de destino são necessários. O Orchestrator inicia 3 trabalhos para processar os 3 itens da fila. Os 3 itens passam para o estado Em progresso.
-
Adicione mais 2 itens à fila. O Orchestrator calcula o número de trabalhos de destino com base no número de novos itens e itens em progresso => 5 (3+2) trabalhos de destino são necessários. O Orchestrator inicia 2 novos trabalhos para atingir o alvo de 5.
Importante: Esta versão marca uma alteração significativa em como o Orchestrator inicia trabalhos por meio de gatilhos de fila. O novo comportamento vem habilitado por padrão e não pode ser desligado. Leia a nota de lançamento cuidadosamente antes de atualizar para a versão 2020.10.14. Se não tiver certeza, fique ligado nos próximos patches nos quais abordaremos esse comportamento ainda mais.
Para fornecer uma melhor visibilidade sobre problemas de runtime, como problemas de permissão ou falhas de conexão, o Orchestrator agora registra as exceções de runtime no Elasticsearch.
A partir de agora, é possível atribuir um nome personalizado ao serviço web Central Credential Provider. Para esse fim, ao configurar um repositório de credenciais do CyberArk CCP, um novo campo está disponível e permite definir o nome do serviço, Nome do serviço web. Deixar este campo vazio faz com que o nome padrão seja usado: AIMWebService.
parameters.JSON
.
Saiba quais são os novos parâmetros e consulte alguns exemplos sobre como usá-los em nosso guia de instalação.
GenerateReportsJob
(as estatísticas de computação do trabalho em segundo plano na página Filas) de incremental para troca de partição, você encontrará o seguinte erro: "A propriedade 'LastQueueItemEventProcessed' em 'UiQueueProcessingRecordBase' não pôde ser definida como 'nula' valor". Como solução alternativa, defina o campo QueueProcessingRecords.LastQueueItemEventProcessedd
no banco de dados como 0 usando a seguinte consulta: UPDATE [dbo].[QueueProcessingRecords] SET [LastQueueItemEventProcessed] = 0 WHERE [LastQueueItemEventProcessed] IS NULL
.
- O comando
GetPassword
não funcionou corretamente quando a configuração do aplicativoPlugins.SecureStores.CyberArk.UsePowerShellCLI
foi ativada - a saída não foi formatada corretamente. O problema foi corrigido e os campos de saída para o comandoGetPassword
agora estão formatados corretamente. -
O uso de armazenamentos de credenciais CyberArk AAM com autenticação de Caminho (
Plugins.SecureStores.CyberArk.UsePowershellCLI
definido comotrue
) falhava com a seguinte mensagem de erro:Failed to retrieve robot password from UiPath.Orchestrator.SecureStore.CyberArk.CyberArkAimSecureStore storeUiPath.Orchestrator.Extensibility.SecureStores.SecureStoreException: Could not find password! Reason: '.\GetCredential.bat : The term '.\GetCredential.bat' is not recognized as the name of a cmdlet, function, script file, or operable program.
Isso acontecia porque o arquivoGetCredentials.bat
era publicado na pasta de instalação do Orchestrator em vez da pasta Plug-ins. O arquivo agora é publicado na pasta Plug-ins. - Deadlocks ocorriam em ambientes do Orchestrator 2020.10.10 quando o processamento de itens de fila levava menos que um segundo por item. Os processos emitiam vários erros “Um erro ocorreu. Código de erro: 0” antes de falhar. O problema foi corrigido e agora é possível processar itens de fila sem encontrar deadlocks.
- A exclusão da mídia de execução fazendo solicitações POST ao endpoint
/odata/ExecutionMedia/UiPath.Server.Configuration.OData.DeleteMediaByJobId
agora requer permissões de Exclusão na Mídia de Execução; anteriormente você precisava de permissões de Visualização. - As atividades Definir ativo e Definir credencial expiraram para ativos que visam um grande número de robôs. Adicionamos um novo mecanismo aprimorado para definir valores do robô que envolve um novo endpoint da API:
/odata /Assets /UiPath.Server.Configuration.OData.SetRobotAssetByRobotKey
. - A descriptografia da string de conexão do Orchestrator era afetada por um problema que fazia com que o cliente do Webhooks não funcionasse. Nós consertamos o problema.
- Em ambientes com vários nós, a string de conexão de todos os nós deve ser idêntica. Certifique-se de que não haja inconsistências, pois isso faria com que os nós tivessem cadeias de conexão diferentes e poderia desencadear erros. Observe que mesmo pequenas incompatibilidades, como um espaço extra, levariam a um problema.