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
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?
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).
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
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)
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.
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.
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
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.