Portabilidade de r-codes - parte II

Escrito por Marcos Kirchner em 19 de setembro de 2008, 08:00h

Conforme apresentado no post anterior, os r-codes (programas Progress compilados) não são portáveis entre todos os ambientes.

Neste post abordaremos mais duas regras para portabilidade dos r-codes: versão do Progress e plataforma (32/64-bit).

Os r-codes podem ser executados em ambientes que possuam a mesma versão principal (major version) do Progress. As versões 10.0B e 10.1A possuem a mesma versão principal, e portanto os r-codes gerados em uma versão são compatíveis para execução na outra. As versões 9.1D e 9.1E também possuem a mesma versão principal.

Ao tentar executar r-codes gerados em versões incompatíveis do Progress, será gerado o erro 2888:
Invalid version, 908 (expected 1005) in object file alias.r. (2888)

É importante ressaltar que r-codes que utilizem funcionalidades novas não executarão em versões mais antigas. Por exemplo, a versão 10.1C introduziu tratamento estruturado de erros, com os blocos CATCH / FINALLY. R-codes que utilizem este recurso não funcionarão adequadamente em versões anteriores, ainda que a versão principal seja igual.

A outra regra aplica-se apenas para as versões 10.1A e superiores. Até a versão 10.0B, inclusive, todos os r-codes eram gerados com estrutura interna de 32-bit, independente da plataforma utilizada para compilação. A partir do OpenEdge 10.1A, as versões de Progress 64-bit geram e executam somente r-codes 64-bit.

O r-code deve ser compatível com a versão / plataforma do client Progress utilizado, e não do banco de dados. Um client 10.1A 32-bit executando em Windows precisa de um r-code 32-bit, mesmo que o banco de dados esteja em um servidor Itanium com HP-UX 64-bit.

A ilustração a seguir representa a portabilidade de r-codes entre algumas versões de Progress / OpenEdge.

 

 

Em ambientes Windows esta preocupação entre 32-bit e 64-bit não é relevante, pois até a versão 10.1C não existe Progress 64-bit para este sistema operacional. Para unix/linux existe Progress 64-bit e deve-se utilizar um r-code compatível com a versão de Progress.

A Datasul disponibiliza os programas compilados em plataforma 64-bit, com o client texto, no diretório hpuxitanium64. Apesar do nome do diretório sugirir HP-UX, estes programas podem ser utilizados em qualquer client texto 64-bit. Os programas existentes nos demais diretórios são compilados com client 32-bit.

Os seguintes KBases da Progress possuem informações adicionais:
How to compile 64-bit r-code?
Is r-code compiled in 10.0X compatible with 10.1A?
Is it necessary to recompile when moving Progress r-code from a 32-bits to a 64-bits version and vice versa?

Categorias: Ambiente | Progress

Tags: , , , , ,

Comentar




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