Histórico da Página
...
...
title | Configuração padrão do broker |
---|
...
O broker deve funcionar normalmente apenas com a configuração mínima do arquivo de configuração (arquivo .ini).
Por exemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
[BALANCE_SMART_CLIENT_DESKTOP]
; nome do serviço Windows (apenas se broker for usado como serviço Windows)
SERVICE_NAME = Nome_Serviço_Windows
; porta TCP onde os cliente se conectam
LOCAL_SERVER_PORT = 5000
; servidores para serem balanceados
REMOTE_SERVER_01 = 127.0.0.1 6001
REMOTE_SERVER_02 = 127.0.0.1 6002
; etc |
Se qualquer outra configuração adicional for utilizada no arquivo .ini, recomenda-se fortemente que seja documentado em comentários o motivo da inclusão desta configuração adicional, para facilitar o processo de suporte e manutenção do broker.
No exemplo abaixo alteramos o tempo de standby do broker (tempo que o broker segura a, quando a conexão com um smartclient é perdida).
Incluímos uma nova configuração, então colocamos uma explicação porque esta configuração foi incluída.
Bloco de código | ||||
---|---|---|---|---|
| ||||
[BALANCE_SMART_CLIENT_DESKTOP]
; nome do serviço Windows (apenas se broker for usado como serviço Windows)
SERVICE_NAME = Nome_Serviço_Windows
; porta TCP onde os cliente se conectam
LOCAL_SERVER_PORT = 5000
; servidores para serem balanceados
REMOTE_SERVER_01 = 127.0.0.1 6001
REMOTE_SERVER_02 = 127.0.0.1 6002
; etc
; aumentado o tempo de espera de reconexão do smartclient para compatibilizar
; com a configuração do application server
; atenção: manter sempre sincronizado com a configuração do application server
STANDBY_TIME = 200
Obs. as observações acima não aplicam à configuração do log. que deve estar sempre ativo para o broker.
Exemplo:
[General]
ConsoleLog = 1
ConsoleFile = ...
ConsoleMaxSize = ...
; etc
|
...
title | Nome do serviço broker no Windows |
---|
O nome do serviço broker no Windows é especificado pela chave SERVICE_NAME no arquivo de configuração appserver.ini do broker.
A partir da versão 2.1.2 do broker (TOTVS - Build 7.00.131227A - Jan 23 2018 - 15:25:33 NG) também é possível especificar o "display name" do serviço Windows, através da chave SERVICE_DISPLAY_NAME, inclusive com a utilização de espaços e caracteres especiais (neste caso, o "display name" deve estar entre aspas).
Observação: nesta versão 2.1.2 quando utilizando broker http e não for especificado o "display name" no arquivo de configuração, será utilizado o nome padrão TOTVS_BROKER_SH. como "display name" do serviço. Numa próxima versão será alterado este comportamento, para que se o "display name" não for especificado então seja utilizado o mesmo valor do "service name".
É possível mudar o "display name" de qualquer serviço (inclusive o broker) através de comandos na console do Windows.
Por exemplo, supondo a seguinte configuração do broker
...
podemos alterar o "display name" deste serviço na console (com direitos administrativos) do Windows com o seguinte comando:
sc config AAA DisplayName="Broker - Cliente 123"
Após isso, na janela de serviços do Windows vai aparecer o nome "Broker - Cliente 123" referente ao serviço AAA.
Obs. a partir da versão 2.1.3 (embarcada no binário do P12 13.2.3.29) esta situação está resolvida: caso não seja fornecida a chave SERVICE_DISPLAY_NAME, o "display name" do serviço broker será o nome usado na chave SERVICE_NAME.
...
title | Nome do serviço broker no Windows |
---|
O nome do serviço broker no Windows é especificado pela chave SERVICE_NAME no arquivo de configuração appserver.ini do broker.
A partir da versão 2.1.2 do broker (TOTVS - Build 7.00.131227A - Jan 23 2018 - 15:25:33 NG) também é possível especificar o "display name" do serviço Windows, através da chave SERVICE_DISPLAY_NAME, inclusive com a utilização de espaços e caracteres especiais (neste caso, o "display name" deve estar entre aspas).
Observação: nesta versão 2.1.2 quando utilizando broker http e não for especificado o "display name" no arquivo de configuração, será utilizado o nome padrão TOTVS_BROKER_SH. como "display name" do serviço. Numa próxima versão será alterado este comportamento, para que se o "display name" não for especificado então seja utilizado o mesmo valor do "service name".
É possível mudar o "display name" de qualquer serviço (inclusive o broker) através de comandos na console do Windows.
Por exemplo, supondo a seguinte configuração do broker
...
podemos alterar o "display name" deste serviço na console (com direitos administrativos) do Windows com o seguinte comando:
sc config AAA DisplayName="Broker - Cliente 123"
Após isso, na janela de serviços do Windows vai aparecer o nome "Broker - Cliente 123" referente ao serviço AAA.
Obs. a partir da versão 2.1.3 (embarcada no binário do P12 13.2.3.29) esta situação está resolvida: caso não seja fornecida a chave SERVICE_DISPLAY_NAME, o "display name" do serviço broker será o nome usado na chave SERVICE_NAME.
...
title | Falha de conexão com o Broker |
---|
Se a conexão com o Broker já funcionava e passou a apresentar problemas, providencie os seguintes artefatos:
- todos os arquivos de logs do Broker Server no servidor
Ex. console.* ou arquivo da sessão [General] -> ConsoleFile=c:\broker\console.log
Caso seja Balance de SmartClient:
- todos os arquivos de logs do Broker Client no SmartClient
Ex. tbc*.txt
- obter os arquivos de logs dos AppServer com problema
Ex. console.* ou arquivo da sessão [General] -> ConsoleFile=c:\protheus\console.log
- informar a data e hora da ocorrência
- obter o arquivo de configuração do Broker Server
Ex. broker.ini ou appserver.ini
- obter a versão do Broker Server
Ex. broker.exe -balance_smart_client_desktop
*
* TOTVS - Build 7.00.131227A - Jul 25 2016 - 13:26:11 NG
* Build: 32 bits
* SVN Revision: 8685 - 11390 - 1508
*
* Protheus Balance Server para Smart Client Desktop
* Copyright 2013-2016 Totvs S.A.
* www.totvs.com.br
*
- obter o arquivo de configuração dos AppServer com problema
Ex. appserver.ini
Caso seja Balance de SmartClient
...
Caso seja Balance de WebService ou Balance de HTTP
...
Quando o Broker estiver rodando como Serviço:
- obter os logs do sistema operacinal
Ex.
- no windows:
logs do "Event Viewer"
- no Linux:
/var/log/messages
- obter os logs do sistema operacinal
- informar a versão do SO Broker e dos Clientes (quando for SmartClient)
- informar se o Broker Server está rodando na mesma máquina dos AppServer
- obter as configurações de rede das estações do servidor do Broker e dos clientes
Ex.
- no windows:
ipconfig /all
- no Linux:
ifconfig -a
- obter as configurações das portas da estação do servidor
Ex.
- no windows:
netstat -an -p tcp | findstr /i listening
netstat -anb -p tcp
- no Linux:
netstat -antp | grep -i listen
ps -aux
Obs. Se estação que apresentou problemas de conexão com o Broker não for via o SmartClient Desktop, não haverá logs ou arquivos de configuração do Broker nestas estações.
...
title | Broker nunca conectou ou não conecta mais |
---|
Se a conexão com o Broker não conecta, execute os seguintes passos e providencie os artefatos:
- Desative o Broker Server faça um telnet na sua porta e verifique que não está conectando na porta.
Ex. telnet 132.7.45.120 8090
Se a conexão estiver fechando verifique quais serviços na máquina estão ativos, erradamente, respondendo na porta do Broker Server (veja em: obter as configurações das portas da estação do servidor)
- Ative o Broker Server faça um telnet na sua porta e verifique se está conectando na porta.
Ex. telnet 132.7.45.120 8090
Se a conexão não estiver fechando verifique a infra estrutura de rede (cabos, firewall, antivírus, configurações de IP e porta, ...)
- Faça testes desativando possíveis Firewall e antivírus que possam estar bloqueando a porta do Broker Server
- Teste para validar a conexão local,faça teste de conexão na mesma máquina onde está o Broker Server (com SmartClient, com telnet, WebService ou Browser), caso funcione verifique as suas configurações de rede, firewall e antivírus com o administrador.
Caso não seja identificado o problema:
- providencie todos os artefatos da sessão "Falha de conexão com o Broker"
...
title | Erros de infra-estrutura |
---|
Existem certos erros gerados pelo sistema operacional que impactam a operação do broker. Quando estes erros aparecem nos logs do broker eles se referem a problemas de infra-estrutra (hardware, rede, bugs do sistema operacional, etc), e portanto não são causados pelo broker.
Erro 121:
Nos logs do broker aparece como "status 121 (expirou timeout da operacao)".
No site da Microsoft a descrição do erro é: "ERROR_SEM_TIMEOUT 121 (0x79) the semaphore timeout period has expired.
Este erro acontece quando não existe erro aparente na infra-estrutura local, mas o outro lado (remoto) não dá sinal de vida.
Erro 10050:
Nos logs do broker aparece como "status 10050 (a socket operation encountered a dead network)".
No site da Microsoft a descrição do erro é: "Network is down. A socket operation encountered a dead network. This could indicate a serious failure of the network system (that is, the protocol stack that the Windows Sockets DLL runs over), the network interface, or the local network itself."
Erro 10051:
Nos logs do broker pode aparecer como "erro 10051" ou "network is unreachable"..
É um erro retornado pelo Windows quando não existe rota entre uma aplicação e o host a que esta aplicação está se tentando conectar. Pode ser erro na configuração na lista de slaves do broker, ou pode realmente ser um erro de infra-estrutura.
Erro 10065: idem erro 10051, mas a mensagem correspondente é "no route to host".
Á medida que outros erros semelhantes forem encontrados eles serão adicionados a esta lista.
...
title | Erros operacionais ou de configuração |
---|
Existem certos erros que se referem à configuração ou à operação do ambiente e que impactam a operação do broker. Quando estes erros aparecem nos logs do broker eles indicam que é necessário alguma ação corretiva da equipe de operação. Normalmente o broker grava um evento no log do Windows quando ocorre esses erros.
Erro 1225:
Nos logs do broker pode aparecer como "erro 1225" ou "connection refused"..
É um erro retornado pelo Windows quando uma aplicação server tenta se conectar a uma porta TCP, mas não existe nenhuma aplicação atendendo naquela porta. Por exemplo, o broker tenta se conectar com um slave, mas não existe nenhuma slave atendendo na porta que o broker tentou se conectar. A causa pode ser erro de configuração no broker (configuração errada se slaves), ou então realmente o slave estava fora do ar quando o broker tentou se conectar.
Erro 10048:
Nos logs do broker pode aparecer como "erro 10048" ou "address already in use"..
É um erro retornado pelo Windows quando uma aplicação server tenta usar uma porta TCP que já está em uso por outra operação server. A ação a ser tomada neste caso é descobrir qual é a outra operação que está usando a porta. Pode acontecer mais raramente quando ocorre crash da aplicação, ou quando a aplicação é terminada de maneira forçada no task manager do Windows. Este erro pode aparecer na inicialização do broker.
Erro 10051:
Nos logs do broker pode aparecer como "erro 10051" ou "network is unreachable"..
É um erro retornado pelo Windows quando não existe rota entre uma aplicação e o host a que esta aplicação está se tentando conectar. Pode ser erro na configuração na lista de slaves do broker, ou pode realmente ser um erro de infra-estrutura.
Erro 10061: idem erro 1225.
Erro 10065: idem erro 10051, mas a mensagem correspondente é "no route to host".
À medida que outros erros semelhantes forem encontrados eles serão adicionados a esta lista.
...
title | Utilização de mais de 99 servidores balanceados |
---|
Para utilizar mais de 99 servidores balanceados utilizar letras (A-Z) para compor a chave REMOTE_SERVER_xx, pois esta chave só pode conter 2 caracteres de identificação.
Por exemplo:
REMOTE_SERVER_98 = 10.58.243.149 12098 10
REMOTE_SERVER_99 = 10.58.243.149 12099 10
REMOTE_SERVER_AA = 10.58.243.149 12100 10
REMOTE_SERVER_AB = 10.58.243.149 12101 10
REMOTE_SERVER_AC = 10.58.243.149 12102 10
Qualquer combinação de letras e números (2 caracteres) é aceita.
...
title | Consulta do status do broker com Chrome, Firefox, etc |
---|
Os brokers para smart client e httpfornecem uma interface de consulta via navegador web (Chrome, Firefox, etc). Através dessa interface é possível verificar se o broker está em execução, e visualizar algumas informa ções sobre a execução atual do broker, tais como versão, hora de início, número de conexões, etc.
O acesso à interface web do broker se dá através da URL base http://ip:porta/TOTVS_BROKER_QUERY. Os comandos que podem ser usados através desta url são STATUS, CFG, e PING.
Telas do broker smart client: tela de STATUS , tela de configuração CFG, tela de PING.
Telas do broker HTTP: tela de STATUS, tela de configuração CFG e tela de PING.
...
title | Monioramento dos servidores remotos |
---|
Uma vez por minuto os brokers para smart client, http e web services tentam se comunicar com os servidores remotos configurados. Os servidores que não respondem são colocados em "quarentena" por 2 minutos, isto é, o broker não redireciona novos pedidos de conexão para esses servidores por 2 minutos. Os servidores que respondem ao broker e estavam de quarentena são retirados da quarentena.
As informações sobre o monitoramento são também registradas no arquivo console.log do broker.
...
"monitor: OK - 4 servers available, 0 servers unavailable "
Se apenas 3 servidores responderam ao monitoramento:
" * erro: 1225 tipo mensagem: 2 na conexao com o server [myPort=0 server=127.0.0.1:5003]"
"colocando servidor 127.0.0.1:5003 em quarentena start=1518696862 stop=1518696982 (monitor)"
"monitor: OK - 3 servers available, 1 server unavailable"
"monitor: server 127.0.0.1:5003 unavailable "
Se nenhum servidor respondeu ao monitoramento:
" * erro: 1225 tipo mensagem: 2 na conexao com o server [myPort=0 server=127.0.0.1:5003]"
"* erro: 1225 tipo mensagem: 2 na conexao com o server [myPort=0 server=127.0.0.1:5004]"
"* erro: 1225 tipo mensagem: 2 na conexao com o server [myPort=0 server=127.0.0.1:5001]"
"colocando servidor 127.0.0.1:5003 em quarentena start=1518697390 stop=1518697510 (monitor)"
"colocando servidor 127.0.0.1:5004 em quarentena start=1518697390 stop=1518697510 (monitor)"
"* erro: 1225 tipo mensagem: 2 na conexao com o server [myPort=0 server=127.0.0.1:5002]"
"colocando servidor 127.0.0.1:5001 em quarentena start=1518697390 stop=1518697510 (monitor)"
"colocando servidor 127.0.0.1:5002 em quarentena start=1518697390 stop=1518697510 (monitor)"
"monitor: OK - 0 servers available, 4 servers unavailable"
"monitor: attention, there are no remote servers available "
...