A partir da versão 20.3.1.0 do  , não é necessário o uso do LockServer em ambientes Linux!

Vale lembrar que este serviço será descontinuado em versões posteriores.

Para desligar o uso do LockServer em serviços do , a seção LOCKSERVER deve ser configurada com as chaves Enable=0 e Server=NOCONFIG (em letras maiúsculas).

Este será o valor default dessa configuração em builds superiores a 20.3.1.0


.


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 / fErase, 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.

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:

[LockServer]
Enable=1
Server=192.168.1.100
Port=1234

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.

Configuração do LockServer:

[General]
CanAcceptFSRemote=1

[LockServer]
Enable=1
Server=192.168.1.100
Port=1234

; chaves opcionais:
WorkThreadQtdMin=1000
WorkThreadStackSize=131072

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.

A chave de configuração [LockServer] WorkThreadQtdMin é opcional e, nesta configuração, substitui o valor da chave [General] WorkThreadQtdMin.

Quando a porta multiprotocolo estiver ativa a comunicação entre Application Server e o LockServer, por padrão, também passa a utilizar uma comunicação segura, ou seja, se o servidor estiver com conexão segura habilitada, usa conexão segura com o LockServer, se conexão segura estiver desabilitada ele faz conexão com o LockServer de forma não segura, todavia é possível alterar a forma de conexão com um LockServer. Veja como em: Seção [LockServer] - Chave SecureConnection.

A chave de configuração [LockServer] WorkThreadStackSize é opcional.


Configuração nos demais servidores:

 
[LockServer]
Enable=0
Server=192.168.1.100
Port=1234

A chave Port corresponde à porta que o servidor de locks que recebe as requisições.

Nessa seção