Runtime error in Job px calling an external routine

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
Umbix62
Participant
Posts: 79
Joined: Mon Jan 16, 2006 2:47 pm

Runtime error in Job px calling an external routine

Post by Umbix62 »

Hi

I'm using, for the first time, an external routine written in c Language. I compile it using xlC_r compiler:

xlC_r decode.c -c

The command issued generate the object file "decode.o"

I have created an external routine, "decode", setting:

type "external routine"
object type "object"
library path ...: the path containing the file "decode.o" generated before.

I compile the job calling the routine, adding the LIBPATH env variable set with the path contaning the file "decode.o". The compilation ended without error. So I run the job and Datastage returns this message:

"Transformer_3: Failed to load the library "V0S3_Untitled11_Transformer_3.o"; either the directory containing the library file
is not on the library search path, or the library was compiled on a system
that is incompatible with this system: Could not load "V0S3_Untitled11_Transformer_3": rtld: 0712-001 Symbol Decode__FPcN31 was referenced
from module /opt/IBM/InformationServer/Server/Projects/PR_TGK_QUAL/RT_BP263.O/V0S3_Untitled11_Transformer_3.o(), but a runtime definition
of the symbol was not found.
rtld: 0712-002 fatal error: exiting.."

I have tried to search something in the forum but without receiving an help. How can I resolve this problem?
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Did you check to see if the directory containing the library file is on the library search path? That's what the error suggests is the likely problem.
-craig

"You can never have too many knives" -- Logan Nine Fingers
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

External routines need to be written in C++, not C.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

... and then you'll still have to deal with the library path issue.
-craig

"You can never have too many knives" -- Logan Nine Fingers
Umbix62
Participant
Posts: 79
Joined: Mon Jan 16, 2006 2:47 pm

Post by Umbix62 »

Hi, I recompile the source as c++ (not c) program and, as Ruy has suggested in his comment, it works now. Craig the libpath is setted correctly. Anyway I have resolved the issue. Than you very much for your help...

Regards

Umberto
Post Reply