Hello All,
I have written a c code which takes 2 arguments and adds it and return it to the main program.I have compiled and sucessfully got the result.Type i have taken care.
I want to call this external function in my stage.I am using a parallel routine.
In the routine,I am giving the libary path where my object code and exes are located.
When i use this in the job i am getting the following compile error.
Do i need to do some setting to make it work.
##I TOSH 000002 20:05:48(001) <main_program> orchgeneral: loaded
##I TOSH 000002 20:05:48(002) <main_program> orchsort: loaded
##I TOSH 000002 20:05:48(003) <main_program> orchstats: loaded
##W TFPA 000012 20:05:49(000) <main_program> Warning: the PWD environment variable is not defined. Remote process startup may be unsuccessful as a result.If your ORCHESTRATE job does not start up correctly, please set your PWD variable to a value that will work on all nodes of your system.
##E TBLD 000000 20:05:50(000) <main_program> Error when checking composite operator: Subprocess command failed with exit status 32512
##E TFSR 000019 20:05:50(001) <main_program> Could not check all operators because of previous error(s)
##W TFCP 000000 20:05:50(002) <transform> Error when checking composite operator: The number of reject datasets "0"is less than the number of input datasets "1".
##W TBLD 000000 20:05:50(003) <main_program> Error when checking composite operator: Output from subprocess: sed: not found
##W TBLD 000000 20:05:50(004) <main_program> Error when checking composite operator: Output from subprocess: cxx: not found
##I TFCP 000008 20:05:50(005) <transform> Error when checking composite operator: cxx -O -IC:/Ascential/DataStage/PXEngine/include -W/TP -W/EHa -DAPT_USE_ANSI_IOSTREAMS -c C:/Ascential/DataStage/Projects/sam1/RT_BP1.O/V0S3_Untitled1_Transformer_3.C -o C:/Ascential/DataStage/Projects/sam1/RT_BP1.O/V0S3_Untitled1_Transformer_3.tmp.o
##E TCOS 000029 20:05:50(006) <main_program> Creation of step finished with status = FAILED (Untitled1.Transformer_3)
*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V0S3_Untitled1_Transformer_3 transform operator.
0003: //
0004:
0005: // define our input/output link names
0006: inputname 0 DSLink2;
0007: outputname 0 DSLink5;
0008:
0009: initialize {
0010: // define our row rejected variable
0011: int8 RowRejected0;
0012:
0013: // define our null set variable
0014: int8 NullSetVar0;
0015:
0016: }
0017:
0018: mainloop {
0019: // initialise our row rejected variable
0020: RowRejected0 = 1;
0021:
0022: // evaluate columns (no constraints) for link: DSLink5
0023: writerecord 0;
0024: RowRejected0 = 0;
0025: }
0026:
0027: finish {
0028: }
0029:
*** End of Internal Generated Transformer Code
Thanks,
Bala.
Error while compiling parallel routine
Moderators: chulett, rschirm, roy
Bala,
I am assuming that you have installed .NET 2003 C++ compiler and your parallel jobs using Transformer stage are working.
If above assumption is correct, then just make sure the path that you populated in the Library Path of the general page is pointing to the path of the Object you created, e.g. C:\yourC++Loaction\TrxFuncs.o.
I am assuming that you have installed .NET 2003 C++ compiler and your parallel jobs using Transformer stage are working.
If above assumption is correct, then just make sure the path that you populated in the Library Path of the general page is pointing to the path of the Object you created, e.g. C:\yourC++Loaction\TrxFuncs.o.
Hi Istsaur,
Thank you very much for the reply.
I am using a Turbo C complier to create the c program(complied,sucesssfully ran there),it creates the object code as .obj and an executable file *.exe.
Now in my library path when i give the object file its showing an error.
.NET 2003 C++ compiler is installed because my other thransformer jobs are working fine.
I am having a doubt is this the problem.Creating a c program in turbo c complier and trying to call that in .NET 2003 C++ compiler.
Regards,
Bala.
Thank you very much for the reply.
I am using a Turbo C complier to create the c program(complied,sucesssfully ran there),it creates the object code as .obj and an executable file *.exe.
Now in my library path when i give the object file its showing an error.
.NET 2003 C++ compiler is installed because my other thransformer jobs are working fine.
I am having a doubt is this the problem.Creating a c program in turbo c complier and trying to call that in .NET 2003 C++ compiler.
Regards,
Bala.
Check out this error. You may need to set a user defined environmental varriable called PDW and assign the default project directy in it or a '.'.##W TFPA 000012 20:05:49(000) <main_program> Warning: the PWD environment variable is not defined. Remote process startup may be unsuccessful as a result.If your ORCHESTRATE job does not start up correctly, please set your PWD variable to a value that will work on all nodes of your system.
Impossible doesn't mean 'it is not possible' actually means... 'NOBODY HAS DONE IT SO FAR'
Hi Kumar/Istsaur
I have set the PWD variable pointing to my project now that warning is gone but still i cannot compile it.
Regarding the setting of the library path.I have folder which has the
C code,object code and executables.I am browsing and giving that in the library path is that right because each time its saying cannot open the file.
Error message.
Output from transformer compilation follows:
##I TFCN 000001 17:24:21(000) <main_program>
Ascential DataStage(tm) Enterprise Edition 7.5
Copyright (c) 2004, 1997-2004 Ascential Software Corporation.
All Rights Reserved
##I TOSH 000002 17:24:21(001) <main_program> orchgeneral: loaded
##I TOSH 000002 17:24:21(002) <main_program> orchsort: loaded
##I TOSH 000002 17:24:21(003) <main_program> orchstats: loaded
##E TBLD 000000 17:24:25(000) <main_program> Error when checking composite operator: Subprocess command failed with exit status 40192
##E TFSR 000019 17:24:25(001) <main_program> Could not check all operators because of previous error(s)
##W TFCP 000000 17:24:25(002) <transform> Error when checking composite operator: The number of reject datasets "0"is less than the number of input datasets "1".
##I TBLD 000000 17:24:25(003) <main_program> Error when checking composite operator: Output from subprocess: C:\Ascential\DataStage\Projects\Rafic\RT_BP49.O\V0S3_Routine_Transformer_3.C(236) : warning C4244: '=' : conversion from 'APT_Int64' to 'int', possible loss of data
##I TFCP 000008 17:24:25(004) <transform> Error when checking composite operator: cxx -LC:/Ascential/DataStage/Projects/Rafic/RT_BP49.O/ -LC:/Ascential/DataStage/PXEngine/lib -LC:/Ascential/DataStage/PXEngine/user_lib -W/TP -W/dll -W/base:0x50000000 -lliborchnt -lliborchcorent -lliborchbuildopnt F:\bala\C\COMMAND\TrxFuncs.o C:/Ascential/DataStage/Projects/Rafic/RT_BP49.O/V0S3_Routine_Transformer_3.tmp.o -o C:/Ascential/DataStage/Projects/Rafic/RT_BP49.O/V0S3_Routine_Transformer_3.dll
##I TBLD 000000 17:24:25(005) <main_program> Error when checking composite operator: Output from subprocess: LINK : warning LNK4224: /DEBUGTYPE:BOTH is no longer supported; ignored
##I TBLD 000000 17:24:25(006) <main_program> Error when checking composite operator: Output from subprocess: LINK : fatal error LNK1181: cannot open input file 'F:balaCCOMMANDTrxFuncs.o'
##E TCOS 000029 17:24:25(007) <main_program> Creation of step finished with status = FAILED (Routine.Transformer_3)
*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V0S3_repos_Transformer_3 transform operator.
0003: //
0004:
0005: // define external functions used
0006: extern int32 P1(int32 arg1,int32 arg2);
0007:
0008: // define our input/output link names
0009: inputname 0 DSLink2;
0010: outputname 0 DSLink5;
0011:
0012: initialize {
0013: // define our row rejected variable
0014: int8 RowRejected0;
0015:
0016: // define our null set variable
0017: int8 NullSetVar0;
0018:
0019: }
0020:
0021: mainloop {
0022: // initialise our row rejected variable
0023: RowRejected0 = 1;
0024:
0025: // evaluate columns (no constraints) for link: DSLink5
0026: DSLink5.New = P1(1 , 2);
0027: writerecord 0;
0028: RowRejected0 = 0;
0029: }
0030:
0031: finish {
0032: }
0033:
*** End of Internal Generated Transformer Code
Regards,
Bala.
I have set the PWD variable pointing to my project now that warning is gone but still i cannot compile it.
Regarding the setting of the library path.I have folder which has the
C code,object code and executables.I am browsing and giving that in the library path is that right because each time its saying cannot open the file.
Error message.
Output from transformer compilation follows:
##I TFCN 000001 17:24:21(000) <main_program>
Ascential DataStage(tm) Enterprise Edition 7.5
Copyright (c) 2004, 1997-2004 Ascential Software Corporation.
All Rights Reserved
##I TOSH 000002 17:24:21(001) <main_program> orchgeneral: loaded
##I TOSH 000002 17:24:21(002) <main_program> orchsort: loaded
##I TOSH 000002 17:24:21(003) <main_program> orchstats: loaded
##E TBLD 000000 17:24:25(000) <main_program> Error when checking composite operator: Subprocess command failed with exit status 40192
##E TFSR 000019 17:24:25(001) <main_program> Could not check all operators because of previous error(s)
##W TFCP 000000 17:24:25(002) <transform> Error when checking composite operator: The number of reject datasets "0"is less than the number of input datasets "1".
##I TBLD 000000 17:24:25(003) <main_program> Error when checking composite operator: Output from subprocess: C:\Ascential\DataStage\Projects\Rafic\RT_BP49.O\V0S3_Routine_Transformer_3.C(236) : warning C4244: '=' : conversion from 'APT_Int64' to 'int', possible loss of data
##I TFCP 000008 17:24:25(004) <transform> Error when checking composite operator: cxx -LC:/Ascential/DataStage/Projects/Rafic/RT_BP49.O/ -LC:/Ascential/DataStage/PXEngine/lib -LC:/Ascential/DataStage/PXEngine/user_lib -W/TP -W/dll -W/base:0x50000000 -lliborchnt -lliborchcorent -lliborchbuildopnt F:\bala\C\COMMAND\TrxFuncs.o C:/Ascential/DataStage/Projects/Rafic/RT_BP49.O/V0S3_Routine_Transformer_3.tmp.o -o C:/Ascential/DataStage/Projects/Rafic/RT_BP49.O/V0S3_Routine_Transformer_3.dll
##I TBLD 000000 17:24:25(005) <main_program> Error when checking composite operator: Output from subprocess: LINK : warning LNK4224: /DEBUGTYPE:BOTH is no longer supported; ignored
##I TBLD 000000 17:24:25(006) <main_program> Error when checking composite operator: Output from subprocess: LINK : fatal error LNK1181: cannot open input file 'F:balaCCOMMANDTrxFuncs.o'
##E TCOS 000029 17:24:25(007) <main_program> Creation of step finished with status = FAILED (Routine.Transformer_3)
*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V0S3_repos_Transformer_3 transform operator.
0003: //
0004:
0005: // define external functions used
0006: extern int32 P1(int32 arg1,int32 arg2);
0007:
0008: // define our input/output link names
0009: inputname 0 DSLink2;
0010: outputname 0 DSLink5;
0011:
0012: initialize {
0013: // define our row rejected variable
0014: int8 RowRejected0;
0015:
0016: // define our null set variable
0017: int8 NullSetVar0;
0018:
0019: }
0020:
0021: mainloop {
0022: // initialise our row rejected variable
0023: RowRejected0 = 1;
0024:
0025: // evaluate columns (no constraints) for link: DSLink5
0026: DSLink5.New = P1(1 , 2);
0027: writerecord 0;
0028: RowRejected0 = 0;
0029: }
0030:
0031: finish {
0032: }
0033:
*** End of Internal Generated Transformer Code
Regards,
Bala.
Hi Bala,
It's a problem that you creating a c program in turbo c complier and trying to call that in .NET 2003 C++ compiler. Your object code should definetely have a .o not a .obj.
I could see that you tried to run the TrxFunc.o example program provided from DataStage EE. I have tried TrxFunc.o routine on my 7.5x2 EE and it works as expected. You are almost there. Good luck.
It's a problem that you creating a c program in turbo c complier and trying to call that in .NET 2003 C++ compiler. Your object code should definetely have a .o not a .obj.
I could see that you tried to run the TrxFunc.o example program provided from DataStage EE. I have tried TrxFunc.o routine on my 7.5x2 EE and it works as expected. You are almost there. Good luck.