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