Mudanças entre as edições de "Servidor de Aplicação"

(→‎Telas / Campos)
(→‎Processos)
 
(45 revisões intermediárias por 4 usuários não estão sendo mostradas)
Linha 1: Linha 1:
 
==='''Conceito'''===
 
==='''Conceito'''===
−
O servidor de aplicação desempenha um papel fundamental no controle de todas as interações entre o cliente, o servidor e o banco de dados. Essas interações podem originar de aplicativos desktop, web, mobile ou outros meios de integração. Ele é responsável por gerenciar todas as requisições recebidas, identificar o usuário, a base de dados e executar os procedimentos necessários, além de controlar as transações do banco de dados para garantir a integridade das informações.
+
O servidor de aplicação desempenha um papel fundamental no controle de todas as interações entre o cliente, o servidor e o banco de dados. Essas interações podem se originar de aplicativos desktop, web, mobile ou outros meios de integração. Ele é responsável por gerenciar todas as requisições recebidas, identificar o usuário, a base de dados e executar os procedimentos necessários, além de controlar as transações do banco de dados para garantir a integridade das informações.
  
 
Além disso, ele não apenas lida com as requisições, mas também gerencia um conjunto de conexões pré-estabelecidas, conhecido como '''[[Pool de Conexões|pool de conexões]]'''. Essa abordagem permite reutilizar conexões existentes, minimizando o tempo de estabelecimento de conexões e maximizando a eficiência e o desempenho geral do sistema. Assim, o servidor de aplicação desempenha um papel vital no controle das interações, no gerenciamento das transações e no eficiente uso do pool de conexões.
 
Além disso, ele não apenas lida com as requisições, mas também gerencia um conjunto de conexões pré-estabelecidas, conhecido como '''[[Pool de Conexões|pool de conexões]]'''. Essa abordagem permite reutilizar conexões existentes, minimizando o tempo de estabelecimento de conexões e maximizando a eficiência e o desempenho geral do sistema. Assim, o servidor de aplicação desempenha um papel vital no controle das interações, no gerenciamento das transações e no eficiente uso do pool de conexões.
  
−
É necessária a '''[https://wiki.phsys.com.br/index.php/Instala%C3%A7%C3%A3o_do_Servi%C3%A7o_PHSServer instalação do serviço]''' responsável pela execução do servidor de aplicação, seguindo as orientações de configuração para o correto funcionamento, assim como o acesso através da ferramenta de configuração PHServerConf.  
+
É necessária a '''[https://wiki.phsys.com.br/index.php/Instala%C3%A7%C3%A3o_do_Servi%C3%A7o_PHSServer instalação do serviço]''' responsável pela execução do servidor de aplicação, seguindo as orientações de configuração para o correto funcionamento, assim como o acesso através da ferramenta de configuração PHServerConf.
  
 
==='''PHServerConf'''===
 
==='''PHServerConf'''===
−
O PHServerConf é a solução com interface web que permite o gerenciamento das configurações do servidor de aplicação, desempenhando um papel fundamental como ferramenta para cadastrar bases de dados e configurar o sistema. É de extrema importância que o PHServerConf esteja configurado corretamente, a fim de garantir o funcionamento adequado do sistema ERP PHSYS nas estações de trabalho.
+
O PHServerConf é a solução com interface web que permite o gerenciamento das configurações do servidor de aplicação, desempenhando um papel fundamental como ferramenta para cadastrar bases de dados e configurar o sistema. É de extrema importância que o PHServerConf esteja configurado corretamente, a fim de garantir o funcionamento adequado do sistema PHERP nas estações de trabalho.
  
−
Através do PHServerConf, é possível realizar o cadastro das bases de dados necessárias para o sistema, bem como realizar as configurações adequadas para atender às necessidades específicas do ambiente. Ao garantir uma configuração correta do PHServerConf, é possível assegurar uma integração perfeita entre o sistema ERP PHSYS e as estações de trabalho, evitando possíveis falhas ou erros.
+
Através do PHServerConf, é possível realizar o cadastro das bases de dados necessárias para o sistema, bem como realizar as configurações adequadas para atender às necessidades específicas do ambiente. Ao garantir uma configuração correta do PHServerConf, é possível assegurar uma integração perfeita entre o sistema PHERP e as estações de trabalho, evitando possíveis falhas ou erros.
  
−
Portanto, é altamente recomendado que seja dada a devida atenção à configuração precisa e correta do PHServerConf, a fim de estabelecer um ambiente estável e funcional para o sistema ERP PHSYS operar de maneira eficiente e confiável.
+
Portanto, é altamente recomendado que seja dada a devida atenção à configuração precisa e correta do PHServerConf, a fim de estabelecer um ambiente estável e funcional para o sistema PHERP operar de maneira eficiente e confiável.
  
−
Com o servidor de aplicação suporte diferentes bases de dados, é necessário o cadastro das bases de dados correspondentes a cada sistema PHERP que será gerenciado pelo servidor de aplicação.   
+
O PHServerConf é acessado pelo navegador, no endereço e na porta do servidor de aplicação, através do caminho '''/ServerConf''' (exemplo: <code><nowiki>http://servidor:porta/ServerConf</nowiki></code>). O acesso é realizado com um usuário cadastrado na tela <b>Usuários</b>, e após o login é exibida a tela <b>Dashboard</b>. Após 5 tentativas de login sem sucesso em 15 minutos, o acesso do usuário a partir do mesmo endereço IP fica bloqueado por 15 minutos.
 +
 
 +
A sessão do PHServerConf é encerrada:
 +
*pelo botão <b>Sair</b>, em todas as abas da mesma sessão;
 +
*após o tempo sem uso definido em '''Encerrar sessão do ServerConf sem uso após''', nas <b>Configurações</b>;
 +
*em até 5 minutos depois de fechadas todas as páginas do PHServerConf.
 +
 
 +
Ao término da sessão, a página volta para o login, que informa o motivo do encerramento.
 +
 
 +
As telas ficam disponíveis no menu lateral: <b>Dashboard</b>, <b>EndPoints de API</b>, <b>Bases de Dados</b>, <b>Processos</b>, <b>Configurações</b>, <b>Logs</b>, <b>Monitoramentos</b>, <b>Usuários</b> e <b>Servidores</b>. Na barra superior ficam o botão que alterna entre o tema claro e o escuro, o nome do usuário conectado e o botão <b>Sair</b>.
 +
 
 +
Nas grades, o ícone de engrenagem permite definir a ordem das colunas, as colunas visíveis e a ordenação. A configuração é gravada para cada usuário, em cada tela.
 +
 
 +
Devido ao servidor de aplicação suportar diferentes bases de dados, é necessário o cadastro das bases de dados correspondentes a cada sistema PHERP que será gerenciado pelo servidor de aplicação.
 +
 
 +
O servidor de aplicação possui uma base de dados própria, que pode estar em um dos bancos de dados abaixo, identificado pelo código informado em '''TipoConexao''':
 +
*1 = SQL Server
 +
*2 = Oracle
 +
*4 = PostgreSQL
 +
 
 +
As informações sobre o banco de dados utilizado pelo servidor de aplicação devem estar informadas no arquivo Parametros.ini, no mesmo diretório do PHServer.exe. Abaixo, exemplo com banco de dados PostgreSQL:
 +
 
 +
'''[CONEXAOBASESDADOS]'''
 +
TipoConexao=4
 +
Servidor=LOCALHOST
 +
Porta=5433
 +
DataBase=serverconf
 +
Usuario=usuario
 +
  Senha=*****
  
 
----
 
----
−
==='''Bases de Dados'''===
 
−
O servidor de aplicação suporta a utilização de diversas bases de dados, estas que são responsáveis por armazenar as informações do ERP PHSYS, sendo assim, na tela <b>Bases de Dados</b> disponibilizada no cabeçalho do servidor de aplicação é possível realizar o cadastro destas. O cadastro de base de dados é a ferramenta que possibilita adicionar os sistemas com os respectivos bancos de dados que serão utilizadas no ERP PHSYS.
 
  
−
O cadastro de base de dados é realizado na tela <b>Base de Dados</b> disponibilizada no cabeçalho do servidor de aplicação. Nesta tela deve ser selecionado o botão <b>Nova Base de Dados</b>, após será aberto um formulário, no qual será possível preencher as informações necessárias para o cadastro da nova base de dados, após é necessário realizar a confirmação do cadastro através do botão <b>Salvar</b>.
+
==='''Dashboard'''===
 +
O Dashboard é a primeira tela exibida após o login e apresenta a saúde do servidor de aplicação. Os blocos <b>Processo</b>, <b>Conexões dos pools</b>, <b>Subprocessos</b> e <b>Caches agora</b> mostram o estado do processo do serviço no momento da consulta e podem ser relidos através dos botões <b>Atualizar</b>. O bloco <b>Eventos</b> apresenta o histórico dos últimos 8 dias registrado nos logs, e o topo da tela informa quando essas informações foram geradas.
  
−
Campos do cadastro da base de dados:
+
As listas mais longas iniciam recolhidas e podem ser expandidas. Nas listas de threads e de subprocessos, os itens semelhantes são agrupados em uma única linha, que também pode ser expandida.
  
−
*'''Código:''' Corresponde ao número do código da base de dados.
+
===='''Processo'''====
−
*'''Nome:''' Corresponde ao nome de identificação da base de dados.
+
Informações do processo do serviço que atende a página, apresentadas nos indicadores:
−
*'''Legenda:''' Corresponde a legenda da base de dados.
+
*'''Memória do processo:''' Memória privada em uso pelo processo, a mesma informação exibida no Gerenciador de Tarefas do Windows.
−
*'''Ativo:''' Corresponde a situação da base de dados cadastrada, caso não esteja ativa, não será possível realizar o acesso da base de dados através do ERP PHSYS.
+
*'''Alocado pela aplicação:''' Parte da memória ocupada pelos objetos do sistema, incluindo os caches.
−
*'''Servidor de Banco:''' Corresponde ao '''servidor de banco de dados''' que será utilizado para realizar a conexão com a base de dados, caso não exista nenhum cadastrado, será necessário realizar o cadastro.
+
*'''Threads:''' Quantidade de threads do processo e de handles abertos.
−
*'''Diretório Instalação:''' Corresponde ao caminho do diretório que está instalado o ERP PHSYS.
+
*'''No ar desde:''' Momento em que o serviço foi iniciado e há quanto tempo está em execução.
−
*'''Pool de Conexões:''' Corresponde ao número de pool de conexões que será utilizado.
+
 
−
*'''Minutos Permanência Pool:''' Corresponde ao número de minutos que o pool ficará disponível após a última requisição de conexão.
+
E nas listas, que iniciam recolhidas:
−
*'''Máximo Registro Consulta:''' Corresponde ao número máximo de registros que serão retornados quando houver uma consulta no banco de dados.
+
*'''Composição da memória privada:''' Divide a memória privada em partes, como a memória do gerenciador de memória da aplicação, os heaps do Windows, as pilhas das threads e os dados do executável, com o tamanho em MB, o percentual e a descrição de cada parte.
−
*'''Data Base:''' Corresponde ao nome que a base de dados possui.
+
*'''Threads:''' Threads do processo, com nome, origem, módulo, tempo de CPU e momento de criação. Threads com a mesma origem e o mesmo nome, desconsiderando a numeração, são agrupadas.
−
*'''Identificação do Servidor:''' Corresponde ao nome de identificação do servidor criado no ERP PHSYS.
+
 
−
*'''Agendamento:''' Corresponde a situação do agendamento de processos, caso ativa será realizado os processos agendadados pelo ERP PHSYS.
+
===='''Conexões dos pools'''====
−
*'''Desconectar Após:''' Corresponde ao número em minutos o tempo máximo que uma sessão permanecerá ativa.
+
Conexões com o banco de dados mantidas para cada base de dados no processo do serviço. Quando o pool está cheio, a requisição é atendida por uma conexão avulsa, aberta e fechada somente para ela; em grande volume, isso torna as requisições mais lentas e pode esgotar as portas do servidor.
−
*'''Monitorar Procedimentos:''' Corresponde a situação do monitoramento de processos do ERP PHSYS, caso ativa será possível realizar este monitoramento.
+
 
 +
Cada conexão do pool é utilizada por até 60 minutos. Ao completar esse tempo, ela é fechada quando é devolvida ao pool ou, se estiver parada, na varredura do pool, e outra conexão é aberta quando necessário. Assim, a memória que a conexão acumula no processo do serviço ao trafegar valores grandes, como anexos, XML e JSON, é liberada periodicamente.
 +
*'''Base:''' Nome da base de dados.
 +
*'''Uso do pool:''' Barra com as conexões em uso, as conexões abertas paradas e as vagas até o limite, com destaque quando o pool está cheio.
 +
*'''Em uso / abertas / limite:''' Conexões em uso, conexões abertas e o limite do pool, definido no campo '''Pool de Conexões''' do cadastro da base de dados.
 +
*'''Pico:''' Maior quantidade de conexões usadas ao mesmo tempo desde o início do serviço, somando as do pool e as avulsas, com o horário em que ocorreu.
 +
*'''Fora do pool:''' Conexões avulsas criadas por falta de vaga no pool desde a última varredura do pool, cujo horário é informado no bloco, e o total desde o início do serviço.
 +
*'''Transação aberta:''' Quantidade de conexões da base de dados devolvidas com transação aberta nas últimas 24 horas. O pool cancela a transação, e o procedimento responsável fica registrado no log com o tipo TRANSACAO_ABERTA.
 +
*'''Datasets ativos nas conexões:''' Lista, recolhida por padrão, dos datasets abertos nas conexões, com a base e a conexão, o SQL ou a tabela, o estado, a quantidade de linhas, o tamanho médio por linha e a memória aproximada.
 +
 
 +
===='''Subprocessos'''====
 +
Processos que o serviço mantém separados do processo principal: os procedimentos executados em subprocesso, os subprocessos de execução dos agendamentos e os subprocessos de geração dos relatórios, que atendem todas as bases de dados. A memória dos subprocessos não está incluída no bloco Processo.
 +
*'''Indicadores:''' Quantidade de subprocessos no ar, memória e tempo de CPU somados, quantidade de execuções de agendamentos em andamento e quantidade de relatórios em geração.
 +
*'''Tipo:''' Tipo do subprocesso. Subprocessos iguais são agrupados.
 +
*'''O que roda:''' O que o subprocesso está executando.
 +
*'''PID:''' Identificador do processo no Windows.
 +
*'''No ar há:''' Tempo desde que o subprocesso foi iniciado.
 +
*'''Memória:''' Memória do subprocesso, a mesma informação exibida no Gerenciador de Tarefas do Windows.
 +
*'''CPU:''' Tempo de CPU consumido pelo subprocesso.
 +
*'''Subprocessos de execução dos agendamentos:''' Lista com a situação de cada subprocesso (subindo, no ar, rodando ou saindo), as execuções em andamento, o último sinal enviado ao serviço e quando ocorrerá a troca. O subprocesso envia um sinal a cada 30 segundos; sem sinal por 3 minutos, o serviço o encerra e inicia outro.
 +
*'''Execuções em andamento:''' Lista com a base de dados, o agendamento, o subprocesso que o executa e há quanto tempo.
 +
*'''Subprocessos de geração dos relatórios:''' Lista com as mesmas informações dos subprocessos de execução dos agendamentos, com a quantidade de relatórios em geração em cada subprocesso.
 +
*'''Relatórios em andamento:''' Lista com a base de dados, o usuário, o pedido (PDF, planilha, relatório para o desktop, Prever do botão ou anexo do e-mail), o subprocesso que o gera e há quanto tempo.
 +
 
 +
Cada execução e cada relatório são enviados ao subprocesso menos ocupado do seu conjunto. Na troca, por tempo de vida ou por uso de memória, outro subprocesso é iniciado no lugar; quando ele fica pronto, o subprocesso trocado deixa de receber trabalhos e é encerrado quando os que estão em andamento terminam. A execução que ultrapassa o tempo esperado para o seu tipo fica em destaque e continua em execução. O relatório que ultrapassa 30 minutos retorna com erro para quem o solicitou, e o subprocesso dele é trocado. Quando a quantidade de um conjunto é 0 nas <b>Configurações</b>, a lista informa que o trabalho é executado no próprio serviço.
 +
 
 +
===='''Caches agora'''====
 +
Estado dos caches em memória do processo no momento da consulta. Faltas que só aumentam indicam invalidação em excesso, e a base de dados que atinge o teto perde itens por falta de espaço, e não por validade.
 +
*'''Itens em memória:''' Quantidade de itens guardados nos caches, com o número de caches e de bases de dados.
 +
*'''Texto de origem:''' Tamanho do conteúdo (JSON) que gerou os itens em memória.
 +
*'''Taxa de acerto:''' Percentual das buscas atendidas pelo cache desde o início do serviço, destacado quando está baixo.
 +
*'''Aguardando liberação:''' Itens com descarte adiado, liberados em até 120 segundos.
 +
*'''Caches por base:''' Lista, recolhida por padrão, com cada cache por base de dados: itens, teto, tamanho do texto de origem, acertos, faltas, taxa de acerto e itens expirados, descartados pelo teto e adiados.
 +
 
 +
O seletor de base filtra as informações do bloco. O botão <b>Limpar base</b> limpa os caches da base de dados selecionada, e o botão <b>Limpar tudo</b> limpa os caches de todas as bases. Os itens são reconstruídos no próximo uso.
 +
 
 +
===='''Eventos'''====
 +
Resumo dos eventos gravados nos logs nos últimos 8 dias. Cada evento possui um tipo:
 +
*'''GERAL:''' Demais mensagens do sistema, como erros na execução de procedimentos.
 +
*'''VAZAMENTO_QUERY:''' Consulta criada por um procedimento e não liberada. O pool desvincula a consulta da conexão para não afetar a próxima requisição.
 +
*'''TRANSACAO_ABERTA:''' Conexão devolvida ao pool com transação aberta. O pool cancela a transação, e o que estava pendente é descartado.
 +
*'''REQUISICAO_LENTA:''' Requisição que ultrapassou o tempo definido em '''Registrar requisição lenta''' nas <b>Configurações</b>.
 +
 
 +
E uma severidade: INFO, ALERTA ou ERRO.
 +
 
 +
*'''Indicadores:''' Quantidade de eventos e de transações abertas nas últimas 24 horas, e quantas bases de dados e sessões tiveram eventos nesse período, sem contar os eventos do tipo GERAL.
 +
*'''Ocorrências por hora do dia:''' Mapa com a quantidade de eventos em cada hora do dia, somando os 8 dias. Permite separar erros de uso, no horário de trabalho, de erros de rotinas automáticas, fora dele.
 +
*'''Eventos por dia:''' Gráfico com a quantidade de eventos de cada dia, separada em vazamento de query, transação aberta e geral, que reúne os demais tipos.
 +
*'''Últimos eventos:''' Os 20 eventos mais recentes, com código, data e hora, tipo, severidade, origem, base de dados e mensagem.
  
 
----
 
----
  
−
==='''Servidores de Banco de Dados'''===
+
==='''Servidores'''===
  
−
Os servidores de banco de dados são responsáveis por definir os parâmetros que serão utilizados nas conexões entre o banco de dados, servidor e client. É necessária dar a devida atenção para estes servidores de banco de dados, caso estes não estejam configurados adequadamente não será possível realizar a conexão com o banco de dados.
+
Os servidores são responsáveis por definir os parâmetros necessários para o servidor de aplicação realizar a comunicação com o banco de dados. No cadastro da base de dados será definido o servidor de banco de dados.
  
−
O cadastro de base de dados é realizado na tela <b>Servidores</b> disponibilizada no cabeçalho do servidor de aplicação. Nesta tela deve ser selecionado o botão <b>Novo Servidor</b>, após será aberto um formulário, no qual será possível preencher as informações necessárias para o cadastro do novo servidor de banco de dados, após é necessário realizar a confirmação do cadastro através do botão <b>Salvar</b>.
+
O cadastro de servidores é realizado na tela <b>Servidores</b>, disponível no menu lateral. Nesta tela deve ser selecionado o botão <b>Novo Servidor</b>; após, será aberto um formulário, no qual será possível preencher as informações necessárias para o cadastro do novo servidor de banco de dados, sendo necessário confirmar o cadastro através do botão <b>Salvar</b>.
  
−
*'''Legenda:''' Corresponde a legenda identificadora do servidor de banco.
+
'''As alterações no cadastro dos servidores passam a valer somente após reiniciar o serviço do servidor de aplicação.'''
−
*'''Conexão:''' Corresponde a qual tipo de banco de dados o servidor de banco vai realizar a conexão.
+
 
−
*'''Endereço Interno:''' Corresponde ao endereço local do banco de dados.  
+
*'''Legenda:''' Texto de identificação do servidor de banco.
−
*'''Endereço Externo:''' Corresponde ao endereço externo, caso esteja preenchido este será utilizado para realizar a conexão com o banco de dados.
+
*'''Conexão:''' Tipo de banco de dados com o qual o servidor de banco vai realizar a conexão (SQL Server, Oracle ou PostgreSQL).
−
*'''Porta:''' Corresponde a porta que está sendo disponibilizada para o acesso ao banco de dados.
+
*'''Endereço Interno:''' Endereço interno do banco de dados.
−
*'''Usuário:''' Corresponde ao nome do usuário do banco de dados acessado.
+
*'''Endereço Externo:''' Endereço externo, caso esteja preenchido este será utilizado para realizar a conexão com o banco de dados.
−
*'''Senha:''' Corresponde a senha do usuário do banco de dados acessado.
+
*'''Porta:''' Porta que está sendo disponibilizada para o acesso ao banco de dados.
 +
*'''Usuário:''' Login do usuário do banco de dados.
 +
*'''Senha:''' Senha do usuário do banco de dados. Na edição, o campo fica em branco e mantém a senha atual; para alterá-la, basta informar a nova senha.
  
 
----
 
----
  
−
==='''Usuários do Servidor de Aplicação'''===
+
==='''Usuários'''===
  
−
O servidor de aplicação suporta a utilização de diversos usuários, sendo assim, na tela <b>Usuários</b> disponibilizada no cabeçalho do servidor de aplicação é possível realizar o cadastro destes. Essa ferramenta de cadastro de usuários possibilita adicionar usuários que utilizarão o servidor de aplicação.
+
O servidor de aplicação suporta a utilização de diversos usuários, sendo assim, na tela <b>Usuários</b>, disponível no menu lateral, é possível realizar o cadastro destes. Nesta tela deve ser selecionado o botão <b>Novo Usuário</b>; será aberto um formulário, sendo possível preencher as informações necessárias para o cadastro do novo usuário, e é necessário realizar a confirmação do cadastro através do botão <b>Salvar</b>.
  
−
O cadastro de usuário é realizado na tela <b>Usuários</b> disponibilizada no cabeçalho do servidor de aplicação. Nesta tela deve ser selecionado o botão <b>Novo Usuário</b>, após será aberto um formulário, no qual será possível preencher as informações necessárias para o cadastro do novo usuário, após é necessário realizar a confirmação do cadastro através do botão <b>Salvar</b>.
+
*'''Nome:''' Nome da pessoa que está sendo adicionada como usuário.
 +
*'''Usuário:''' Login do usuário que será utilizado para o acesso ao PHServerConf.
 +
*'''Senha:''' Senha do usuário que será utilizada para o acesso ao PHServerConf, gravada protegida por hash. Na edição, o campo fica em branco e mantém a senha atual; para alterá-la, basta informar a nova senha.
 +
*'''Ativo:''' Situação do usuário, caso não esteja ativo, não será possível realizar o acesso ao PHServerConf.
  
−
O cadastro de usuário é uma funcionalidade essencial para a gestão do servidor de aplicação, nele é possível realizar a inserção de um novo usuário do servidor de aplicação. Este cadastro pode ser utilizado inúmeras vezes, ou seja, não existem limites quanto a quantidade de usuários cadastrados.
+
Ao desativar ou excluir um usuário, as sessões dele no PHServerConf são encerradas. Ao alterar a senha, as sessões abertas do usuário são encerradas, e a sessão em que a alteração foi feita continua ativa.
  
−
*'''Nome:''' Corresponde ao nome da pessoa que está sendo adicionada como usuário.
 
−
*'''Usuário:''' Corresponde ao nome do usuário que será utilizado para o acesso do servidor de aplicação.
 
−
*'''Senha:''' Corresponde a senha do usuário que será utilizada para o acesso do servidor de aplicação.
 
−
*'''Ativo:''' Corresponde a situação do usuário cadastrado, caso não esteja ativo, não será possível realizar o acesso no servidor de aplicação.
 
 
----
 
----
  
−
==='''Configurações do Servidor de Aplicação'''===
+
==='''Logs'''===
−
No Servidor de aplicação é possível alterar alguns parâmetros que são utilizados durante as conexões entre o servidor de aplicação e banco de dados.  
+
Durante a utilização do sistema ERP, caso ocorram situações que gerem mensagens de erros, estas mensagens acabam sendo salvas na tabela "log" presente dentro da base de dados do PHServerConf, com isso, através do servidor de aplicação é possível realizar a consulta destes registros, nos quais, podem ser utilizados para uma análise periódica das situações recorrentes ou eventuais que ocorrem. Esta análise de logs é recomendada para garantir a integridade e o desempenho do sistema ERP. Ao analisar regularmente os registros de erro, é possível identificar padrões e tendências que podem indicar situações recorrentes ou emergentes, permitindo assim, que a equipe de TI capacitada tome medidas proativas para resolver essas situações.
 +
 
 +
A consulta pode ser filtrada por base de dados e por período, informando a data inicial e a data final. Os mesmos registros alimentam o bloco <b>Eventos</b> do <b>Dashboard</b>, que apresenta também o tipo, a severidade e a origem de cada evento.
 +
 
 +
*'''Base de Dados:''' Nome da base de dados que foi gerado o log, em determinadas situações, este campo acaba não sendo preenchido na gravação do log.
 +
*'''Log:''' Descrição do log que foi gerado pela situação. Quando o log é gravado por um subprocesso, a descrição inicia com a identificação do subprocesso, no formato [Subprocesso PID número: descrição].
 +
*'''Data/Hora:''' Momento em que ocorreu o registro da situação na tabela.
 +
 
 +
----
 +
 
 +
==='''Monitoramentos'''===
 +
O processo de monitoramento é utilizado para serem obtidas informações precisas sobre a execução dos procedimentos realizados. Para utilização da funcionalidade é necessária uma configuração prévia dentro do '''[[Cadastro_de_Usuários|cadastro de usuário]]''' em relação a sua configuração de monitoramento. Dentro do servidor de aplicação é possível realizar a consulta destes registros de monitoramento, facilitando assim, a análise e interpretação das requisições realizadas.
 +
 
 +
A consulta pode ser filtrada por base de dados, por usuário e por período.
 +
 
 +
*'''Base de Dados:''' Nome da base de dados executada a requisição.
 +
*'''Usuário:''' Usuário responsável pela execução da requisição.
 +
*'''Classe:''' Classe do procedimento que foi executado.
 +
*'''Procedimento:''' Nome do procedimento que foi executado.
 +
*'''Data/Hora Início:''' Momento em que ocorreu o início da execução da requisição.
 +
*'''Data/Hora Fim:''' Momento em que ocorreu a finalização da execução da requisição.
 +
*'''Duração:''' Tempo em milissegundos em que a requisição foi executada.
 +
*'''Log:''' Descrição do log que foi gerado pela execução da requisição.
 +
 
 +
----
 +
 
 +
==='''Processos'''===
 +
Na tela <b>Processos</b> é possível acompanhar os '''[[Processos|processos executados no servidor de aplicação]]''' em todas as bases de dados ativas. A consulta pode ser filtrada por base de dados, por situação (Cadastrado, Concluído, Cancelado, Erro ou Processando) e por período.
 +
 
 +
No campo '''Atualizar a cada (segundos)''' é possível informar um intervalo para que a consulta seja atualizada automaticamente após a primeira pesquisa. O intervalo fica gravado no navegador, e o valor zero desliga a atualização automática.
 +
 
 +
*'''Base de Dados:''' Base de dados em que o processo foi executado.
 +
*'''Usuário:''' Usuário responsável pela execução do processo.
 +
*'''Identificação:''' Identificação do processo.
 +
*'''Data/Hora Início:''' Momento em que o processo foi iniciado.
 +
*'''Previsão Término:''' Momento previsto para o término do processo.
 +
*'''Data/Hora Fim:''' Momento em que o processo foi finalizado.
 +
*'''Percentual:''' Percentual concluído do processo.
 +
*'''Situação:''' Situação do processo.
 +
*'''Log:''' Último registro do log do processo.
 +
 
 +
A atualização do banco de dados, as gerações de Json e a manutenção do banco de dados também são executadas como processos e podem ser acompanhadas nesta tela, com as identificações:
 +
*'''Atualização do banco de dados:''' Atualização solicitada pela tela de atualização do PHERP desktop, executada com a base de dados bloqueada.
 +
*'''Geração Json Cadastros:''' Geração completa do Json dos cadastros, dividida em lotes executados em subprocessos e identificados como ''Json Cadastros - Lote'' seguido do número, conforme o campo '''Geração de Json na atualização''' das <b>Configurações</b>.
 +
*'''Geração Json do cadastro''' e '''Geração Json dos cadastros da tabela''', seguidos do nome: Geração do Json de um cadastro ou dos cadastros de uma tabela.
 +
*'''Geração Json Filtros''', '''Geração Json Formulários''' e '''Geração Json Faixa de Opções''': Geração do Json dos filtros, dos formulários e da faixa de opções.
 +
*'''Recriação de índices e relacionamentos''', '''Exclusão de relacionamentos''', '''Criação de relacionamentos''', '''Exclusão de índices''', '''Criação de índices''', '''Criação de chaves primárias''' e '''Ajuste de sequências''': Manutenção do banco de dados, executada em subprocesso, uma de cada vez em cada base de dados.
 +
 
 +
 
 +
----
 +
 
 +
 
 +
'''Assuntos Relacionados'''
 +
 
 +
[[Bases_de_Dados|Bases de Dados]]
 +
 
 +
[[PHSYS_API|PHSYS API]]
 +
 
 +
[[Dashboard_ServerConf|Dashboard]]
 +
 
 +
[[EndPoints de API]]
  
−
O processo de alteração de configurações do servidor de aplicação é realizado na tela '''Configurações''' disponibilizada no cabeçalho do servidor de aplicação. Quando selecionada, será aberto um formulário, no qual será possível alterar as informações de configurações, após alteradas é necessário realizar a confirmação da alteração através do botão <b>Salvar</b>.
+
[[Privacidade]]
  
−
*'''Pool de Conexões:''' Corresponde ao número de pool de conexões que será utilizado.
+
[[ServerConf Configurações]]
−
*'''Minutos Permanência Pool:''' Corresponde ao número de minutos que o pool ficará disponível após a última requisição de conexão.
 

Edição atual tal como às 16h19min de 22 de outubro de 2026

Conceito

O servidor de aplicação desempenha um papel fundamental no controle de todas as interações entre o cliente, o servidor e o banco de dados. Essas interações podem se originar de aplicativos desktop, web, mobile ou outros meios de integração. Ele é responsável por gerenciar todas as requisições recebidas, identificar o usuário, a base de dados e executar os procedimentos necessários, além de controlar as transações do banco de dados para garantir a integridade das informações.

Além disso, ele não apenas lida com as requisições, mas também gerencia um conjunto de conexões pré-estabelecidas, conhecido como pool de conexões. Essa abordagem permite reutilizar conexões existentes, minimizando o tempo de estabelecimento de conexões e maximizando a eficiência e o desempenho geral do sistema. Assim, o servidor de aplicação desempenha um papel vital no controle das interações, no gerenciamento das transações e no eficiente uso do pool de conexões.

É necessária a instalação do serviço responsável pela execução do servidor de aplicação, seguindo as orientações de configuração para o correto funcionamento, assim como o acesso através da ferramenta de configuração PHServerConf.

PHServerConf

O PHServerConf é a solução com interface web que permite o gerenciamento das configurações do servidor de aplicação, desempenhando um papel fundamental como ferramenta para cadastrar bases de dados e configurar o sistema. É de extrema importância que o PHServerConf esteja configurado corretamente, a fim de garantir o funcionamento adequado do sistema PHERP nas estações de trabalho.

Através do PHServerConf, é possível realizar o cadastro das bases de dados necessárias para o sistema, bem como realizar as configurações adequadas para atender às necessidades específicas do ambiente. Ao garantir uma configuração correta do PHServerConf, é possível assegurar uma integração perfeita entre o sistema PHERP e as estações de trabalho, evitando possíveis falhas ou erros.

Portanto, é altamente recomendado que seja dada a devida atenção à configuração precisa e correta do PHServerConf, a fim de estabelecer um ambiente estável e funcional para o sistema PHERP operar de maneira eficiente e confiável.

O PHServerConf é acessado pelo navegador, no endereço e na porta do servidor de aplicação, através do caminho /ServerConf (exemplo: http://servidor:porta/ServerConf). O acesso é realizado com um usuário cadastrado na tela Usuários, e após o login é exibida a tela Dashboard. Após 5 tentativas de login sem sucesso em 15 minutos, o acesso do usuário a partir do mesmo endereço IP fica bloqueado por 15 minutos.

A sessão do PHServerConf é encerrada:

  • pelo botão Sair, em todas as abas da mesma sessão;
  • após o tempo sem uso definido em Encerrar sessão do ServerConf sem uso após, nas Configurações;
  • em até 5 minutos depois de fechadas todas as páginas do PHServerConf.

Ao término da sessão, a página volta para o login, que informa o motivo do encerramento.

As telas ficam disponíveis no menu lateral: Dashboard, EndPoints de API, Bases de Dados, Processos, Configurações, Logs, Monitoramentos, Usuários e Servidores. Na barra superior ficam o botão que alterna entre o tema claro e o escuro, o nome do usuário conectado e o botão Sair.

Nas grades, o ícone de engrenagem permite definir a ordem das colunas, as colunas visíveis e a ordenação. A configuração é gravada para cada usuário, em cada tela.

Devido ao servidor de aplicação suportar diferentes bases de dados, é necessário o cadastro das bases de dados correspondentes a cada sistema PHERP que será gerenciado pelo servidor de aplicação.

O servidor de aplicação possui uma base de dados própria, que pode estar em um dos bancos de dados abaixo, identificado pelo código informado em TipoConexao:

  • 1 = SQL Server
  • 2 = Oracle
  • 4 = PostgreSQL

As informações sobre o banco de dados utilizado pelo servidor de aplicação devem estar informadas no arquivo Parametros.ini, no mesmo diretório do PHServer.exe. Abaixo, exemplo com banco de dados PostgreSQL:

[CONEXAOBASESDADOS]
TipoConexao=4
Servidor=LOCALHOST
Porta=5433
DataBase=serverconf
Usuario=usuario
Senha=*****

Dashboard

O Dashboard é a primeira tela exibida após o login e apresenta a saúde do servidor de aplicação. Os blocos Processo, Conexões dos pools, Subprocessos e Caches agora mostram o estado do processo do serviço no momento da consulta e podem ser relidos através dos botões Atualizar. O bloco Eventos apresenta o histórico dos últimos 8 dias registrado nos logs, e o topo da tela informa quando essas informações foram geradas.

As listas mais longas iniciam recolhidas e podem ser expandidas. Nas listas de threads e de subprocessos, os itens semelhantes são agrupados em uma única linha, que também pode ser expandida.

Processo

Informações do processo do serviço que atende a página, apresentadas nos indicadores:

  • Memória do processo: Memória privada em uso pelo processo, a mesma informação exibida no Gerenciador de Tarefas do Windows.
  • Alocado pela aplicação: Parte da memória ocupada pelos objetos do sistema, incluindo os caches.
  • Threads: Quantidade de threads do processo e de handles abertos.
  • No ar desde: Momento em que o serviço foi iniciado e há quanto tempo está em execução.

E nas listas, que iniciam recolhidas:

  • Composição da memória privada: Divide a memória privada em partes, como a memória do gerenciador de memória da aplicação, os heaps do Windows, as pilhas das threads e os dados do executável, com o tamanho em MB, o percentual e a descrição de cada parte.
  • Threads: Threads do processo, com nome, origem, módulo, tempo de CPU e momento de criação. Threads com a mesma origem e o mesmo nome, desconsiderando a numeração, são agrupadas.

Conexões dos pools

Conexões com o banco de dados mantidas para cada base de dados no processo do serviço. Quando o pool está cheio, a requisição é atendida por uma conexão avulsa, aberta e fechada somente para ela; em grande volume, isso torna as requisições mais lentas e pode esgotar as portas do servidor.

Cada conexão do pool é utilizada por até 60 minutos. Ao completar esse tempo, ela é fechada quando é devolvida ao pool ou, se estiver parada, na varredura do pool, e outra conexão é aberta quando necessário. Assim, a memória que a conexão acumula no processo do serviço ao trafegar valores grandes, como anexos, XML e JSON, é liberada periodicamente.

  • Base: Nome da base de dados.
  • Uso do pool: Barra com as conexões em uso, as conexões abertas paradas e as vagas até o limite, com destaque quando o pool está cheio.
  • Em uso / abertas / limite: Conexões em uso, conexões abertas e o limite do pool, definido no campo Pool de Conexões do cadastro da base de dados.
  • Pico: Maior quantidade de conexões usadas ao mesmo tempo desde o início do serviço, somando as do pool e as avulsas, com o horário em que ocorreu.
  • Fora do pool: Conexões avulsas criadas por falta de vaga no pool desde a última varredura do pool, cujo horário é informado no bloco, e o total desde o início do serviço.
  • Transação aberta: Quantidade de conexões da base de dados devolvidas com transação aberta nas últimas 24 horas. O pool cancela a transação, e o procedimento responsável fica registrado no log com o tipo TRANSACAO_ABERTA.
  • Datasets ativos nas conexões: Lista, recolhida por padrão, dos datasets abertos nas conexões, com a base e a conexão, o SQL ou a tabela, o estado, a quantidade de linhas, o tamanho médio por linha e a memória aproximada.

Subprocessos

Processos que o serviço mantém separados do processo principal: os procedimentos executados em subprocesso, os subprocessos de execução dos agendamentos e os subprocessos de geração dos relatórios, que atendem todas as bases de dados. A memória dos subprocessos não está incluída no bloco Processo.

  • Indicadores: Quantidade de subprocessos no ar, memória e tempo de CPU somados, quantidade de execuções de agendamentos em andamento e quantidade de relatórios em geração.
  • Tipo: Tipo do subprocesso. Subprocessos iguais são agrupados.
  • O que roda: O que o subprocesso está executando.
  • PID: Identificador do processo no Windows.
  • No ar há: Tempo desde que o subprocesso foi iniciado.
  • Memória: Memória do subprocesso, a mesma informação exibida no Gerenciador de Tarefas do Windows.
  • CPU: Tempo de CPU consumido pelo subprocesso.
  • Subprocessos de execução dos agendamentos: Lista com a situação de cada subprocesso (subindo, no ar, rodando ou saindo), as execuções em andamento, o último sinal enviado ao serviço e quando ocorrerá a troca. O subprocesso envia um sinal a cada 30 segundos; sem sinal por 3 minutos, o serviço o encerra e inicia outro.
  • Execuções em andamento: Lista com a base de dados, o agendamento, o subprocesso que o executa e há quanto tempo.
  • Subprocessos de geração dos relatórios: Lista com as mesmas informações dos subprocessos de execução dos agendamentos, com a quantidade de relatórios em geração em cada subprocesso.
  • Relatórios em andamento: Lista com a base de dados, o usuário, o pedido (PDF, planilha, relatório para o desktop, Prever do botão ou anexo do e-mail), o subprocesso que o gera e há quanto tempo.

Cada execução e cada relatório são enviados ao subprocesso menos ocupado do seu conjunto. Na troca, por tempo de vida ou por uso de memória, outro subprocesso é iniciado no lugar; quando ele fica pronto, o subprocesso trocado deixa de receber trabalhos e é encerrado quando os que estão em andamento terminam. A execução que ultrapassa o tempo esperado para o seu tipo fica em destaque e continua em execução. O relatório que ultrapassa 30 minutos retorna com erro para quem o solicitou, e o subprocesso dele é trocado. Quando a quantidade de um conjunto é 0 nas Configurações, a lista informa que o trabalho é executado no próprio serviço.

Caches agora

Estado dos caches em memória do processo no momento da consulta. Faltas que só aumentam indicam invalidação em excesso, e a base de dados que atinge o teto perde itens por falta de espaço, e não por validade.

  • Itens em memória: Quantidade de itens guardados nos caches, com o número de caches e de bases de dados.
  • Texto de origem: Tamanho do conteúdo (JSON) que gerou os itens em memória.
  • Taxa de acerto: Percentual das buscas atendidas pelo cache desde o início do serviço, destacado quando está baixo.
  • Aguardando liberação: Itens com descarte adiado, liberados em até 120 segundos.
  • Caches por base: Lista, recolhida por padrão, com cada cache por base de dados: itens, teto, tamanho do texto de origem, acertos, faltas, taxa de acerto e itens expirados, descartados pelo teto e adiados.

O seletor de base filtra as informações do bloco. O botão Limpar base limpa os caches da base de dados selecionada, e o botão Limpar tudo limpa os caches de todas as bases. Os itens são reconstruídos no próximo uso.

Eventos

Resumo dos eventos gravados nos logs nos últimos 8 dias. Cada evento possui um tipo:

  • GERAL: Demais mensagens do sistema, como erros na execução de procedimentos.
  • VAZAMENTO_QUERY: Consulta criada por um procedimento e não liberada. O pool desvincula a consulta da conexão para não afetar a próxima requisição.
  • TRANSACAO_ABERTA: Conexão devolvida ao pool com transação aberta. O pool cancela a transação, e o que estava pendente é descartado.
  • REQUISICAO_LENTA: Requisição que ultrapassou o tempo definido em Registrar requisição lenta nas Configurações.

E uma severidade: INFO, ALERTA ou ERRO.

  • Indicadores: Quantidade de eventos e de transações abertas nas últimas 24 horas, e quantas bases de dados e sessões tiveram eventos nesse período, sem contar os eventos do tipo GERAL.
  • Ocorrências por hora do dia: Mapa com a quantidade de eventos em cada hora do dia, somando os 8 dias. Permite separar erros de uso, no horário de trabalho, de erros de rotinas automáticas, fora dele.
  • Eventos por dia: Gráfico com a quantidade de eventos de cada dia, separada em vazamento de query, transação aberta e geral, que reúne os demais tipos.
  • Últimos eventos: Os 20 eventos mais recentes, com código, data e hora, tipo, severidade, origem, base de dados e mensagem.

Servidores

Os servidores são responsáveis por definir os parâmetros necessários para o servidor de aplicação realizar a comunicação com o banco de dados. No cadastro da base de dados será definido o servidor de banco de dados.

O cadastro de servidores é realizado na tela Servidores, disponível no menu lateral. Nesta tela deve ser selecionado o botão Novo Servidor; após, será aberto um formulário, no qual será possível preencher as informações necessárias para o cadastro do novo servidor de banco de dados, sendo necessário confirmar o cadastro através do botão Salvar.

As alterações no cadastro dos servidores passam a valer somente após reiniciar o serviço do servidor de aplicação.

  • Legenda: Texto de identificação do servidor de banco.
  • Conexão: Tipo de banco de dados com o qual o servidor de banco vai realizar a conexão (SQL Server, Oracle ou PostgreSQL).
  • Endereço Interno: Endereço interno do banco de dados.
  • Endereço Externo: Endereço externo, caso esteja preenchido este será utilizado para realizar a conexão com o banco de dados.
  • Porta: Porta que está sendo disponibilizada para o acesso ao banco de dados.
  • Usuário: Login do usuário do banco de dados.
  • Senha: Senha do usuário do banco de dados. Na edição, o campo fica em branco e mantém a senha atual; para alterá-la, basta informar a nova senha.

Usuários

O servidor de aplicação suporta a utilização de diversos usuários, sendo assim, na tela Usuários, disponível no menu lateral, é possível realizar o cadastro destes. Nesta tela deve ser selecionado o botão Novo Usuário; será aberto um formulário, sendo possível preencher as informações necessárias para o cadastro do novo usuário, e é necessário realizar a confirmação do cadastro através do botão Salvar.

  • Nome: Nome da pessoa que está sendo adicionada como usuário.
  • Usuário: Login do usuário que será utilizado para o acesso ao PHServerConf.
  • Senha: Senha do usuário que será utilizada para o acesso ao PHServerConf, gravada protegida por hash. Na edição, o campo fica em branco e mantém a senha atual; para alterá-la, basta informar a nova senha.
  • Ativo: Situação do usuário, caso não esteja ativo, não será possível realizar o acesso ao PHServerConf.

Ao desativar ou excluir um usuário, as sessões dele no PHServerConf são encerradas. Ao alterar a senha, as sessões abertas do usuário são encerradas, e a sessão em que a alteração foi feita continua ativa.


Logs

Durante a utilização do sistema ERP, caso ocorram situações que gerem mensagens de erros, estas mensagens acabam sendo salvas na tabela "log" presente dentro da base de dados do PHServerConf, com isso, através do servidor de aplicação é possível realizar a consulta destes registros, nos quais, podem ser utilizados para uma análise periódica das situações recorrentes ou eventuais que ocorrem. Esta análise de logs é recomendada para garantir a integridade e o desempenho do sistema ERP. Ao analisar regularmente os registros de erro, é possível identificar padrões e tendências que podem indicar situações recorrentes ou emergentes, permitindo assim, que a equipe de TI capacitada tome medidas proativas para resolver essas situações.

A consulta pode ser filtrada por base de dados e por período, informando a data inicial e a data final. Os mesmos registros alimentam o bloco Eventos do Dashboard, que apresenta também o tipo, a severidade e a origem de cada evento.

  • Base de Dados: Nome da base de dados que foi gerado o log, em determinadas situações, este campo acaba não sendo preenchido na gravação do log.
  • Log: Descrição do log que foi gerado pela situação. Quando o log é gravado por um subprocesso, a descrição inicia com a identificação do subprocesso, no formato [Subprocesso PID número: descrição].
  • Data/Hora: Momento em que ocorreu o registro da situação na tabela.

Monitoramentos

O processo de monitoramento é utilizado para serem obtidas informações precisas sobre a execução dos procedimentos realizados. Para utilização da funcionalidade é necessária uma configuração prévia dentro do cadastro de usuário em relação a sua configuração de monitoramento. Dentro do servidor de aplicação é possível realizar a consulta destes registros de monitoramento, facilitando assim, a análise e interpretação das requisições realizadas.

A consulta pode ser filtrada por base de dados, por usuário e por período.

  • Base de Dados: Nome da base de dados executada a requisição.
  • Usuário: Usuário responsável pela execução da requisição.
  • Classe: Classe do procedimento que foi executado.
  • Procedimento: Nome do procedimento que foi executado.
  • Data/Hora Início: Momento em que ocorreu o início da execução da requisição.
  • Data/Hora Fim: Momento em que ocorreu a finalização da execução da requisição.
  • Duração: Tempo em milissegundos em que a requisição foi executada.
  • Log: Descrição do log que foi gerado pela execução da requisição.

Processos

Na tela Processos é possível acompanhar os processos executados no servidor de aplicação em todas as bases de dados ativas. A consulta pode ser filtrada por base de dados, por situação (Cadastrado, Concluído, Cancelado, Erro ou Processando) e por período.

No campo Atualizar a cada (segundos) é possível informar um intervalo para que a consulta seja atualizada automaticamente após a primeira pesquisa. O intervalo fica gravado no navegador, e o valor zero desliga a atualização automática.

  • Base de Dados: Base de dados em que o processo foi executado.
  • Usuário: Usuário responsável pela execução do processo.
  • Identificação: Identificação do processo.
  • Data/Hora Início: Momento em que o processo foi iniciado.
  • Previsão Término: Momento previsto para o término do processo.
  • Data/Hora Fim: Momento em que o processo foi finalizado.
  • Percentual: Percentual concluído do processo.
  • Situação: Situação do processo.
  • Log: Último registro do log do processo.

A atualização do banco de dados, as gerações de Json e a manutenção do banco de dados também são executadas como processos e podem ser acompanhadas nesta tela, com as identificações:

  • Atualização do banco de dados: Atualização solicitada pela tela de atualização do PHERP desktop, executada com a base de dados bloqueada.
  • Geração Json Cadastros: Geração completa do Json dos cadastros, dividida em lotes executados em subprocessos e identificados como Json Cadastros - Lote seguido do número, conforme o campo Geração de Json na atualização das Configurações.
  • Geração Json do cadastro e Geração Json dos cadastros da tabela, seguidos do nome: Geração do Json de um cadastro ou dos cadastros de uma tabela.
  • Geração Json Filtros, Geração Json Formulários e Geração Json Faixa de Opções: Geração do Json dos filtros, dos formulários e da faixa de opções.
  • Recriação de índices e relacionamentos, Exclusão de relacionamentos, Criação de relacionamentos, Exclusão de índices, Criação de índices, Criação de chaves primárias e Ajuste de sequências: Manutenção do banco de dados, executada em subprocesso, uma de cada vez em cada base de dados.




Assuntos Relacionados

Bases de Dados

PHSYS API

Dashboard

EndPoints de API

Privacidade

ServerConf Configurações