Page 1 of 1

Parallel Routine Execution Error

Posted: Sat Oct 29, 2005 3:27 am
by haider.malik
Hi All,
When i plugin my parallel Routine in my transformer, i am getting this error

Code: Select all

Transformer_2: Failed to load the library "V0S2_PXTest_Transformer_2.dll". 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 "V0S2_PXTest_Transformer_2": The specified module could not be found.
But when i plug the routine off the transformer works perfectly.

Any idea what i am doing wrong. The DLL exists on the server on a specified location

Thanks in advance

Posted: Mon Oct 31, 2005 10:46 am
by Eric
Is this a library or dynamic routine?
How did you compile the routine? (commands?)
Have you set the retrun datatypes correctly in the PxRoutine definition in the DataStage designer?
Have you done this before on Unix?

Check if the DLL works or not

Posted: Mon Oct 31, 2005 2:06 pm
by pneumalin
I will check if that DLL you just plugin works or not. Since the message shows your job finds the DLL, but fails to load it.

Posted: Mon Oct 31, 2005 2:10 pm
by ray.wurlod
I disagree. The final sentence in the error message explicitly states "failed to find". Even though the OP is on Windows, many things are done in a UNIX environment (MKS Toolkit). Check the setting of the LD_LIBRARY_PATH envonronment variable, which is the shared library search path. Or it may just be another example of flakiness in 7.5x2 (the first attempt at PX on Windows).

Posted: Tue Nov 01, 2005 5:55 am
by Eric
I disagree. If the dll was missing then the job would not compile and this message looks like a runtime error. The last message is "The specified module could not be found" which normally means that the function within the dll cannot be loaded. This implies that either the dll was not built correctly, compiled with the wrong compiler or that the parallel routine definition in datastage does not match the function in the dll (return types, arg lists etc)

Agree!

Posted: Tue Nov 01, 2005 9:06 am
by pneumalin
Eric wrote:I disagree. If the dll was missing then the job would not compile and this message looks like a runtime error. The last message is "The specified module could not be found" which normally means that the function within the dll cannot be loaded. This implies that either the dll was not built correctly, compiled with the wrong compiler or that the parallel routine definition in datastage does not match the function in the dll (return types, arg lists etc)
What Eric is saying is exactly what I propose to do. As a normal practice I used to do, is to test that library to work outside of DataStage when you build a DLL in Window or .so in unix. This will ensure the DLL or .so is properly built using 3rd party compiler, then you can work on DataStage job or environment if anything goes wrong. BTW, it's easy to build a C executable in window or Unix to call the library. I can post my C executable code here if you so desire.

Pneuma.

C Executable code

Posted: Fri Nov 04, 2005 10:00 am
by BrianAtWork
I can post my C executable code here if you so desire.
I would be interested in seeing your Code - I've been trying to debug my library using PX, which is time consuming. I'd rather do it in Unix and make sure my code is right before testing in PX.

Thanks!

Posted: Sat Nov 12, 2005 12:50 pm
by maffan76
All,
I was facing the same problem and i posted the same problem on the forum and was almost stuck for last few weeks, finally i have managed to find the solution, this error comes due to the fact that the SHELL SERACH PATH Environment variable of DS did not have the path for the library i was compiling, i specified the path of my library which contained the functions for parallel routines and it worked like a magic.

If any one is still facing a problem i would love to help him as much as i can as i solved it thru HIT and TRIAL :)

Posted: Sun Nov 13, 2005 11:05 pm
by ravivarma20
Hi Guys,

I am having the similar problem. My Px jobs with routine reference failed to run.

It's throwing the following error:

Code: Select all

Failed to load the library "V0S198_MKG_FDW_MGR_MovementData_Transformer_198.so". 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 "V0S198_MKG_FDW_MGR_MovementData_Transformer_198": /mnt/datastage/7.5/Projects/C40075/C40075_Test/Deployed_Flows/temp/O1447553.MKG_FDW_MGR_MovementData/V0S198_MKG_FDW_MGR_MovementData_Transformer_198.so: undefined symbol: IRITimeConversion__FPcT0. 
Our OS is Redhat linux. In shell search path, I given the path where my C++ object file is sitting,but no luck. It's still throwing the same error and failing.

This is my make file to generate object file

Makefile code:
g++ -O -fPIC -c IRITimeConversion.cc -I.

Am I missing any compile options? Any help would be greately appreciated.

Thanks,
Ravi.