Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 3 Próxima »

O broker deve funcionar normalmente apenas com a configuração mínima do arquivo de configuração (arquivo .ini).

Por exemplo:

[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.

[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

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


    [BALANCE_HTTP]
    SERVICE_NAME = AAA
    SERVICE_DISPLAY_NAME = "Serviço sem nome"


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.

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


    [BALANCE_HTTP]
    SERVICE_NAME = AAA
    SERVICE_DISPLAY_NAME = "Serviço sem nome"


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.

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

    • obter o arquivo de configuração do SmartClient da estação com problema
      Ex. smartclient.ini
    • informar descrição/imagem dos parâmetros de execução do SmartClient e a descrição/imagem do erro em tela

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
       
  • 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.
 

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"


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.


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.


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.

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 HTTP: tela de STATUS, tela de configuração  CFG e tela de PING.


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.

Exemplo com 4 servidores configurados.

Se todos responderam ao monitoramento:

                "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 "

A tela de consulta de status do broker (ver item anterior) também mostra os servidores que estão em quarentena.



  • Sem rótulos