Tempo aproximado para leitura: 00:04:14 min
Dúvida
Há Como identificar o programa em execução no client através do promon?
Ambiente
Framework - Framework (Linha Datasul) - Progress OpenEdge - Todas as versões
Solução
O client Progress não alimenta o banco de dados com informações relacionadas a execução de programas. Se um programa Progress realizar uma consulta a uma determinada tabela, o banco de dados apenas recebe a requisição para ler e retornar os dados para aquela sessão. Porém, ele não saberá efetivamente qual programa realizou aquela solicitação.
Caso exista a necessidade de obter informações sobre o programa em execução no momento, pode-se utilizar o Statement Cache. Esse recurso, quando habilitado, passa a alimentar as Virtual System Tables com informações relacionadas a execução dos programas. Em resumo, a cada solicitação efetuada do client ao server do banco de dados, o client envia informações adicionais informando o programa que realizou aquela solicitação.
Pela necessidade de enviar informações adicionais ao servidor, deve-se utilizar este recurso com parcimônia. O incremento de informações trafegadas na rede pode gerar lentidão, principalmente se o ambiente já apresenta essa tendência. Por esse motivo, utilize o Statement Cache apenas para análise de problemas onde esse recurso pode ser útil.
A configuração do Statement Cache é realizada através do promon. No menu inicial, escolha as opções R&D, 1 e 18. Será exibido o menu abaixo:

Para habilitar o Statement Cache utilize as opções 1, 2 ou 3, onde:
1. Habilita para alguns usuários. Neste caso, será necessário identificar o código do usuário conectado ao banco e informar um a um os usuários que deseja habilitar;
2. Habilita para todos os usuários que já estão conectados ao banco de dados;
3. Habilita para os usuários que ainda irão se conectar ao banco de dados.
Após ativado, quando o usuário realizar alguma requisição ao banco de dados, será possível visualizar o programa que efetuou a última requisição através da opção 7:

Como a sessão do usuário 24 é ABL, será apresentado o nome e a linha do programa em execução naquele momento. Neste nosso exemplo, a linha número 1 do programa c:\temp\teste\teste.p.
O programa será apresentado da forma como foi realizada sua chamada, seja através de caminho relativo ou por caminho completo. Ex: btb\btb902za.r ou c:\totvs\datasul\dts-1\ERP\fnd\btb\btb902za.r
Caso seja realizada uma conexão ODBC ou JDBC, será apresentada a última query que o banco de dados recebeu daquela sessão.
Para desabilitar o Statement Cache utilize as opções 4, 5 ou 6, onde:
4. Desabilita para apenas um ou alguns usuários, sendo necessário informar o código do usuário;
5. Desabilita para todos os usuários conectados ao banco;
6. Desabilita para os usuários que irão se conectar ao banco.
Importante
As configurações do Statement Cache não são persistentes. Isso significa que elas só irão durar enquanto o banco de dados estiver ativo. Quando o banco de dados for desativado e ativado novamente será preciso ativar este recurso, caso ainda seja necessário seu uso.
Saiba mais
Informações adicionais em What is Client Database-Request Statement Caching?
0 Comentários