Como configurar um balanceamento de carga utilizando C-Tree Bound server com arquivos em memória
Produto: | Microsiga Protheus |
Versões: | 11 e 12 |
Passo a passo: | O c-tree BoundServer (c-tree Server DLL) é, basicamente, um servidor c-tree que sobe junto (incorporado) com o Protheus Server. É recomendado seu uso em ambientes onde é utilizado apenas um Protheus Server como servidor de aplicação, onde os dicionários não têm seu acesso compartilhado com outros servidores Protheus. É possível configurá-lo para carregar arquivos de dicionário (SXs) em memória, tornando seu acesso ainda mais rápido. Aviso: Apenas as tabelas informadas na configuração do .ini serão notificadas por aquele servidor Protheus. Nesta configuração, deve-se sempre especificar a extensão da tabela. Apenas devem ser especificadas tabelas ISAM do Ctree. O sistema de notificação não está preparado para trabalhar com arquivos do tipo Superfile (extensão .SPF). Importante: 1. É recomendado que o binário esteja atualizado. 2. Não misturar arquivos de configuração "ctsrvr.cfg" do CtreeServer com o do BoundServer. Nas versões mais recentes do binário, esse arquivo vem junto da pasta Appserver Nota: O Bound Server também utiliza licenças de Ctree, assim como o Ctree Server. Para maiores informações sobre como aplicar a chave, consulte o link abaixo: - Faça uma cópia da pasta raiz do seu balanceamento de carga, contendo as pastas "Appserver" do Master e dos Slaves
[General] InstallPath=C:\TOTVS 12 CtreeMode=boundServer Consolelog=1 [Drivers] Active=TCP [TCP] TYPE=TCPIP Port=1270 [LICENSECLIENT] Server=localhost Port=5555 [P12] SourcePath=C:\TOTVS 12\Microsiga\protheus\apo\ RootPath=C:\TOTVS 12\Microsiga\protheus_data CtreeRootPath=C:\TOTVS 12\Microsiga\protheus_data StartPath=\system\ x2_path= RpoDb=top RpoLanguage=Portuguese RpoVersion=120 LocalFiles=CTREE Trace=0 localdbextension=.dtc [DBAccess] Alias=P12_1_14 Server=localhost Database=MSSQL Port=7890 [CtreeServerMaster] ctUserId=ADMIN ctUserPass=ADMIN ctServerName=FAIRCOMS@localhost memctUserId=ADMIN memctUserPass=ADMIN memctServerName=boundServer@localhost Environments=P12 Files=sx3*.dtc,sx5*.dtc,sx6*.dtc,sx7*.dtc ShowStatus=1 [ServerNetwork] MasterConnection=0 Servers=Slave1,Slave2 [Slave1] TYPE=TCPIP Server=localhost Port=1271 Connections=1 [Slave2] TYPE=TCPIP Server=localhost Port=1272 Connections=1
SERVER_NAME BOUNDSERVER COMM_PROTOCOL F_TCPIP COMM_PROTOCOL FSHAREMM LOG_SPACE 96 CTSTATUS_SIZE -1000000 SKIP_MISSING_FILES YES IDX_MEMORY 128 MB DAT_MEMORY 128 MB CONSOLE NO_MESSAGEBOX CONSOLE NO_SHUTDOWN_PROMPT
[General] InstallPath=C:\TOTVS 12 CtreeMode=boundClient Consolelog=1 [Drivers] Active=TCP [TCP] TYPE=TCPIP Port=1271 [LICENSECLIENT] Server=localhost Port=5555 [P12] SourcePath=C:\TOTVS 12\Microsiga\protheus\apo\ RootPath=C:\TOTVS 12\Microsiga\protheus_data CtreeRootPath=C:\TOTVS 12\Microsiga\protheus_data StartPath=\system\ x2_path= RpoDb=top RpoLanguage=Portuguese RpoVersion=120 LocalFiles=CTREE Trace=0 localdbextension=.dtc [DBAccess] Alias=P12_1_14 Server=localhost Database=MSSQL Port=7890 [CtreeServerMaster] ctUserId=ADMIN ctUserPass=ADMIN ctServerName=FAIRCOMS@localhost Environments=P12 Files=sx3*.dtc,sx5*.dtc,sx6*.dtc,sx7*.dtc ShowStatus=1
COMM_PROTOCOL F_TCPIP COMM_PROTOCOL FSHAREMM COMM_PROTOCOL DISABLED LOG_SPACE 96 CTSTATUS_SIZE -1000000 SKIP_MISSING_FILES YES IDX_MEMORY 128 MB DAT_MEMORY 128 MB CONSOLE NO_MESSAGEBOX CONSOLE NO_SHUTDOWN_PROMPT Importante: É necessária a inclusão do parâmetro "COMM_PROTOCOL DISABLED" no arquivo ctsrvr.cfg dos Slaves, se ele for um BoundClient. Todos os Application Server configurados como BOUNDCLIENT devem ter os respectivos arquivos CTSRVR.CFG da pasta do Application Server com esta configuração. Apenas um serviço de Protheus na máquina, o que estiver como BOUNDSERVER, não deve ter essa configuração. O motivo para esta configuração é que o primeiro programa AdvPL que usar, por exemplo, o driver temporário do c-Tree, faz o Application Server carregar o BoundServer naquele Slave, e se ele estiver com a camada de comunicação ativa, ele não sobe pois conflita com o BoundServer que já está no ar. Pelos CTSTATUS.FCS é possível verificar a causa da queda: Thu May 14 10:17:04 2020 |
Observações: | Sobre as configurações dos arquivos: - No arquivo appserver.ini do Master, na seção [General], a linha CtreeMode dever ser =boundServer, e no appserver.ini dos Slaves, deve ser =boundClient
[CtreeServerMaster] Informações para conectar ao CTREE SERVER MASTER: ctUserId=ADMIN -> Linha não obrigatória. O valor "ADMIN" é Default. ctUserPass=ADMIN -> Linha não obrigatória. O valor "ADMIN" é Default. ctServerName=FAIRCOMS@localhost -> Nome do servidor do Ctree Server principal (não o embedded). A primeira parte antes do @ indica o nome do servidor, definido na linha SERVER_NAME do arquivo ctsrvr.cfg do CtreeServer, enquanto a segunda parte, após o @, indica o endereço IP do servidor onde está este CtreeServer Informações para conectar ao CTREE BOUND SERVER: memctUserId=ADMIN -> Linha não obrigatória. O valor "ADMIN" é Default. memctUserPass=ADMIN -> Linha não obrigatória. O valor "ADMIN" é Default. memctServerName=boundServer@localhost -> Nome do servidor do Ctree Bound Server (embedded). A primeira parte antes do @ indica o nome do servidor, definido na linha SERVER_NAME do arquivo ctsrvr.cfg que está na pasta Appserver, enquanto a segunda parte, após o @, indica o endereço IP do servidor onde está este Ctree Bound Server. Environments=P12 -> Lista de ambientes que utilizarão o C-Tree Bound Server com arquivos em memória. Esta chave informa quais ambientes do servidor serão verificados, durante a preparação do ambiente do processo (Thread) de notificação, para realizar a busca por arquivos especificados na configuração FILES. Somente é possível indicar para notificação ambientes que utilizem CTREE para controle das tabelas ISAM (SXS). Files=sx3990.dtc,sx5*.dtc,sx6??0.dtc,sx7*.dtc -> Arquivos a serem utilizados em memória. Podem ser especificados um ou mais arquivos, separados por vírgula, com paths absolutos em disco, relativos ao ROOTPATH do ambiente, ou apenas o nome do arquivo localizado a partir do STARTPATH do ambiente. Podem ser utilizados caracteres de máscara “*” e ”?”. ShowStatus=1 -> Mostra as mensagens de informação da notificação do Ctree. Pode ser 0 ou 1. O Default é 0. |