Pesquisa de programas no PROPATH

Escrito por Marcos Kirchner em 30 de outubro de 2008, 15:25h

Sempre que há uma solicitação para execução de algum programa, o client Progress precisa localizar e carregar em memória o programa correspondente. Para o processo de localização do programa é utilizada uma variável chamada PROPATH.

O PROPATH contém uma lista de diretórios nos quais o Progress procurará o programa a ser executado. Normalmente o valor do PROPATH é definido através de uma variável de ambiente ou em um arquivo .ini indicado na inicialização da sessão Progress.

A pesquisa é sempre realizada na mesma ordem em que os diretórios estão definidos no PROPATH. O primeiro programa que for localizado, na ordem do PROPATH, é executado. Os diretórios subsequentes ao diretório onde o programa foi encontrado não são verificados. Além disto, para cada diretório é verificado primeiro a existência de um r-code (.r) e depois do arquivo chamado (normalmente .p).

Por exemplo, considere o sequinte PROPATH:
PROPATH=e:\datasul\ems206b,e:\datasul\ems506,e:\datasul\hcm209

Ao executar o menu.p, a pesquisa é feita nesta seqüência:
e:\datasul\ems206b\menu.r
e:\datasul\ems206b\menu.p
e:\datasul\ems506\menu.r
e:\datasul\ems506\menu.p
e:\datasul\hcm209\menu.r
e:\datasul\hcm209\menu.p

O primeiro arquivo encontrado é utilizado e os demais não são verificados. Se o programa menu.r existir no diretório e:\datasul\ems206b (primeira entrada do PROPATH), apenas este diretório é verificado.

Se o programa não for encontrado em nenhum dos diretórios do PROPATH é gerado o erro 293, indicando o programa que não foi encontrado
** "menu.p" was not found. (293)

Por padrão, cada vez que um programa é executado ocorre o processo de pesquisa pelos diretórios do PROPATH. Mesmo que o programa já exista em memória os diretórios do PROPATH são verificados. Se for encontrada em disco uma versão mais nova do que a versão em memória, o programa é lido novamente. Caso contrário é utilizada a versão em memória.

Para alterar este comportamento existe o parâmetro -q (Quick Request). Quando este parâmetro está definido, a primeira vez que um programa é executado ocorre o processo normal de pesquisa pelos diretórios do PROPATH. Nas demais execuções do mesmo programa, se ele ainda estiver disponível na memória do client Progress, esta versão em memória será executada e não será realizada uma nova pesquisa pelos diretórios do PROPATH.

Os seguintes KBases da Progress possuem informações adicionais:
How does Progress search for compiled ( .r ) and uncompiled ( .p ) code in the PROPATH?
How does the Quick Request startup parameter (-q) improve performance?
Quick Request (-q) startup parameter doesn't affect the search of some kind of files.

Categorias: Ambiente

Tags: , ,

Comentários (3) -

em 3 de novembro de 2008, 16:43h

Legal, novamente, obrigado pelas informações!!!

Alex

em 3 de novembro de 2010, 07:49h

Bom dia. Gostaria de saber uma informação. É normal que um programa executado no ems2 ou ems5, com base de dados progress, fique alocado na memória, mesmo depois do seu fechamento?

E mais, quando abro vários programas e no final fico somente com um aberto, o acúmulo de memória alocada para cada um desses vários programas, ficar alocado mesmo com o fechamento de todos eles e só liberar essa memória depois que se muda de um módulo para outro? Exemplo, quando se sai do módulo faturamento e entra no módulo estoque...

Stanger Pereira da Silva

em 3 de novembro de 2010, 08:13h

Stanger,

O ideal é que o programa seja liberado logo após seu uso. Se ele não tem mais utilidade, não precisa ser mantido carregado.

No Progress existe uma forma de executar um programa de forma persistente. Ele fica ativo até que seja excluído por outro programa, ou até o fim da sessão.

É isto que você está se referindo?
Como você detectou que o programas ficam em memória?

kirchner

Comentar




biuquote
  • Comentário
  • Pré-visualização
Loading


Acesso LogMeIn

Informe o código PIN: