Nessa segunda parte sobre desempenho do ambiente apresentarei como configurar os programas do sistema para executar com mais velocidade e segurança.
Um programa Progress pode ser construído em qualquer editor de texto caractere, porém, antes de qualquer execução, o programa passará por um processo chamado de compilação.
A compilação consiste na conferência e transformação do código texto em um código criptografado, contendo informações de quais índices e quais permissões serão usadas para acesso aos dados necessários para a sua execução. O processo de compilação tornará mais rápido a abertura do programa.
Em sua execução, o Progress apenas confere se as definições utilizadas para compilar os programas são as mesmas definições que atualmente estão no banco de dados. Isso garantirá que as informações de acesso ao dados estejam corretas. Esse também é o motivo que o Progress não permite que definições sejam alteradas enquanto existem programas acessando as mesmas tabelas.
A essa conferência é dado o nome de CRC.
A garantia do CRC é que o programa está adequado para acessar as definições existentes no banco, porém o programa poderá ser compilado contra qualquer banco que possui as mesmas definições que o banco contra o qual será executado. Isso permite que usuários mal-intencionados compilem programas específicos e executem em um banco de produção.
Para evitar essa situação, existe um controle adicional que o Progress permite, adicionando uma chave de acesso ao banco e ao programa. A partir dessa chave de acesso aplicada no banco, somente programas com a mesma chave de acesso poderão executar, mesmo que as definições de banco e programa sejam iguais.
As ferramentas que o Progress disponibiliza para criação dessa chave são o dbauthkey e rcodekey, respectivamente usados para o banco de dados e os programas. Infelizmente o Progress não disponibiliza uma ferramenta para aplicação de chave em um diretório de programas, o que obriga a executar o rcodekey para cada programa.
Todo programa executado em uma sessão Progress deve primeiramente ser localizado em um dos diretórios listados na variável de ambiente chamada PROPATH. Essa lista de diretórios permite ao ambiente ter diversos diretórios de programa onde podem ser configurados diretórios de específicos, customizações, quarentena e produção.
Quando um programa é executado o Progress procura em toda a lista de diretórios se o programa existe. Apesar de ele selecionar o programa do primeiro diretório encontrado, todos os diretório são conferidos impreterivelmente.
Se a lista de diretórios no Propath for extensa, o Progress perderá muito tempo procurando por programas, tempo esse que pode ser eliminado com uma configuração reduzida de diretórios.
Outra forma de agilizar a abertura do Programa é a utilização do parâmetro –q. Esse parâmetro faz com que uma vez o programa aberto na sessão, a mesma sessão não volte a checar as chaves de segurança. Além disso, o parâmetro força a utilização sempre da mesma entrada do Propath
Esses detalhes precisam ser intermitentemente revisados, diante da constante atualização de programas no ambiente e crescimento do sistema.