A seção [LockServer], pode definir um servidor de aplicação como servidor de locks e também pode ser utilizada para indicar que o sistema deve utilizar um servidor de locks.
O uso de um servidor de locks de arquivo é necessário para contornar uma limitação referente ao acesso e uso exclusivo de acesso direto a arquivos e pastas em ambiente Linux. Não se trata de lock de registros de tabelas de dados, mas sim da abertura de arquivos no disco em modo exclusivo ou compartilhado, usados por exemplo pelas funções fCreate / fOpen, para que estas funções e os demais acessos a API de arquivos feitas pelo TOTVS | Application Server tenham o comportamento esperado, necessário para o correto funcionamento da aplicação.
O servidor de locks deve ser um dos primeiros servidores de aplicação a ser inicializado e um dos últimos a ser finalizado.
Caso o serviço não esteja ativo, ou caso ele seja finalizado enquanto os demais serviços que o utilizam estejam executando aplicações Advpl, todos os outros serviços que realizarem uma requisição ao LockServer serão interrompidos com uma ocorrência de erro de conexão com o LockServer.
SUSE 12 ou qualquer distro com kernel >= 4.3
Quando da utilização do sistema operacional SUSE 12, por padrão, é limitado o número de threads por processo em 512. Caso o LockServer seja utilizado para um número maior de usuários é necessário configurar o parâmetro DefaultTasksMax. Os detalhes para configuração estão disponíveis no site do fabricante, no link: SUSE Linux Enterprise Server 12 SP2 - Release Notes, seção 2.3.2 Support for PIDs cgroup Controller.
Estrutura
Veja a seguir as chaves relacionadas à seção [LockServer]:
Normalmente o servidor de aplicação utilizado como Master para balanceamento de carga é configurado automaticamente como servidor de locks, entretanto é possível iniciar uma nova instância exclusivamente para atuar como LockServer.
Exemplos
Instância única
Em ambientes onde somente um único servidor de aplicação atende todos os usuários (pequenos ambientes de produção ou ainda ambientes de desenvolvimento), somente é necessário configurar a seção [LockServer] como abaixo:
Supondo que o IP do servidor de aplicação (que é o servidor de locks) seja 192.168.1.100, e a chave Port corresponde à porta do servidor de aplicação que recebe as requisições.
Múltiplas instâncias/ambientes balanceados
Em ambientes balanceados e em ambientes que separamos um servidor de aplicação para algum serviço específico, é necessário configurar um LockServer e nos demais indicar o uso do LockServer configurado. A chave de configuração CanAcceptFSRemote deve ser habilitada na seção [GENERAL] do serviço configurado para ser o LockServer, para que este esteja habilitado a aceitar as conexões dos demais serviços do TOTVS | Application Server que apontam para este servidor de locks.
Supondo que o IP do servidor de aplicação (que é o servidor de locks) seja 192.168.1.100, e a chave Port corresponde à porta do servidor de aplicação que recebe as requisições.