Pensando em um cenário de escalabilidade horizontal para o Application Server, onde distribuímos vários serviços "Slave" do Application Server em vários equipamentos, foi desenvolvido um mecanismo de cache dos dicionários do ERP (SXS) em memória com sincronismo automático, em parceria com a Faircom(R), para retirar o overhead de rede na leitura dos meta-dados do ERP,
Para isso, a partir da Build 7.00.121227P, o pacote de arquivos do Application Server passa a ser distribuído com uma versão do c-Tree Server compilada em DLL, conhecida por "BoundServer". Utilizando um c-Tree Server com a licença "Faircom c-Tree Server Enterprise", podemos configurar um ou mais Application Servers do ambiente para replicarem os dicionários do ERP desejados entre estas instâncias, onde cada Application Server com esta configuração vai acessar os dados dos arquivos do cache para operações de leitura, e um mecanismo de sincronismo entre o c-Tree Server e os Application Server(s) trabalhando com o cache (mecanismo ou thread de notificação) mantém os caches dos dados atualizados caso alguma das tabelas em memória seja alterada.
Cada Application Server configurado com o cache de arquivos vai carregar o driver c-Tree BoundServer, e na subida do serviço vai copiar os arquivos configurados para cache para a memória. O consumo de memória será contabilizado na instância do Application Server, e em média corresponde ao dobro do tamanho total dos arquivos mais índices dos arquivos configurados. Por exemplo, 500 MB de arquivos e respectivos índices para o cache devem ocupar aproximadamente 1 GB de memória. Quando o serviço do Application Server é iniciado, ele já começa a realizar a cópia pela rede. Porém, mesmo que ele já comece imediatamente a aceitar conexões de SmartClient, a abertura de qualquer arquivo da memória somente será possível após o processo de notificação ter carregado todos os arquivos configurados. Enquanto isso o programa aguarda pela carga do arquivo, pelo tempo default de 1 minuto, tempo este que pode ser configurado através da chave WaitForNotification na seção [ctreeservermaster] do arquivo de configuração do Application Server (appserver.ini).Para maiores detalhes desta configuração, consulte a documentação Seção [ctreeServerMaster]
O arquivo de senhas não é suportado para trabalhar com a notificação em memória. Todos os arquivos do meta-dados do ERP são suportados no esquema de notificação, desde que eles não sejam abertos pela aplicação em modo exclusivo. Como a notificação dos arquivos em memória consome bastante espaço, e as máquinas servidoras atualmente podem comportar 4, 8 ou mais instâncias do Application Server, ao invés de configurarmos vários serviços do Application Server na mesma maquina no modo "boundserver", podemos configurar apenas um serviço por máquina fisica como "boundserver", removendo ele do balanceamento de carga (para ele não rodar programas AdvPL), habilitamos a camada de conexão apenas desta instância de boundserver, removendo a linha "COMM_PROTOCOL DISABLE" do arquivo ctsrvr.cfg localizado junto do executável do Aplication Server desta instância, e configurando todos os demais serviços de Application Server com as mesmas configurações de notificação da chave [ctreeservermaster], mas trocamos a configuração ctreemode=boundserver para ctreemode=boundclient.
Com isto, todos os serviços Protheus configurados como BoundClient vão acessar o c-Tree BoundServer da própria máquina para ler os arquivos em cache, sem precisar que cada um suba a sua cópia na memória. Neste caso, este serviço de BoundServer não pode ser interrompido, pois os demais serviços vão depender dele para acesso ao cache em memória.