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.