Tempo aproximado para leitura: 00:05:25 min
Dúvida
Como funciona o consumo de licenças pelo portal Meu RH
Ambiente
Framework - Linha RM - Frame - Todas as versões do Sistema RM
Solução
Os portais e serviços expostos pelo servidor de aplicação da Linha RM (RM.Host) tem o seu consumo independente de máquina e usuário. O seu consumo é dado por requisição e durante o tempo de vida de cada uma. Eles utilizam a licença TOTVS I ou similar, conforme a modalidade do contrato.
Por questões de performance e escalabilidade o RM alimenta um Pool de Licenças a medida que elas são consumidas. O tempo de vida de cada licença no Pool é de 30s permitindo que ela seja reutilizada em requisições não concorrentes. Após ser reutilizada, a licença pode voltar para o Pool, caso ainda não tenha terminado o seu tempo de vida ou ser liberada no License Server. O Pool de Licenças é por Host, portanto caso existam vários Hosts atendendo às requisições, poderão ser consumidas licenças distintas independente da máquina e usuário.
No diagrama abaixo, podemos visualizar o fluxo de duas requisições. A requisição 1 não encontra nenhuma licença no Pool e busca uma licença no License Server. Após terminar o seu processamento, faz a liberação da licença. Ela vai para o Pool caso tenha se passado menos de 30s do momento em que ela foi obtida pelo License Server. A licença fica no Pool até a sua próxima reutilização. Caso não seja reutilizada e liberada, o próprio License Server a libera após aproximadamente 180s do seu consumo.
A segunda requisição consegue obter a licença do Pool, processa e libera. Desta vez, já se passaram mais de 30s do momento em que ela foi obtida, ela vai de volta para o License Server e é liberada.
Neste outro diagrama podemos ver uma requisição que tenta obter a licença do Pool e do License Server, mas não tem sucesso. Essa requisição entrará em um estado de espera por 10s aguardando uma notificação de que alguma licença em uso foi liberada. Assim que for notificada, ela continuará o fluxo tentado obter uma licença para processar.
Caso a requisição em espera não receba a notificação em 10s, ela continuará o fluxo tentando obter uma licença, caso não tenha nenhuma ainda disponível, um erro será retornado ao cliente. O diagrama abaixo exemplifica isso.
0 Comentários