Consultor Eletrônico



Kbase P175273: Invalid version, 17391 (expected 1005) in object file . (2888) when running a trigger.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/14/2010
Status: Verified

SYMPTOM(s):

Invalid version, 17391 (expected 1005) in object file <path\triggers\trig.r>. (2888) when running a trigger.

Invalid version, <version> (expected <version>) in object file <file-name>. (2888)

32 bit client is running a 64 bit trigger

64 bit client is running a 32 bit trigger

FACT(s) (Environment):

All Supported Operating Systems
OpenEdge 10.1x
OpenEdge 10.2x

CAUSE:

Database is 64 bits and all triggers were compiled as 64 bit.
In 10.1A, Progress introduced 64-bit r-code, this means that the r-code would become native 64-bit boundary aligned. This 64-bit r-code implementation changed the r-code portability for performance reasons. Therefore, if you are on a 64-bit platform, you can run either 32-bit r-code with a 32-bit OpenEdge version, or 64-bit r-code with a 64-bit OpenEdge version. As of 10.1X you cannot run 32 bit r-code on a 64-bit ABL client. 64-bit r-code performs better on a 64-bit platform. Therefore you have to decide between r-code portability or maximum performance.

If on a 32-bit platform, you can only run 32-bit r-code. Also, there is no r-code portability between pre-10.1B 64-bit products and 10.1B 64-bit products; the pre-10.1B 64-bit r-code was not really "native".


FIX:

Compile another set of triggers in 32-bit. Then add -trig parameter to the 32 bit client startup parameters pointing to the deployment directory containing the newly compiled 32-bit triggers.

ie: prowin32 dbname -H host -S port -trig <directory-path> -p program.r