BuildOPs and large files

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
Larry.Griffith
Premium Member
Premium Member
Posts: 7
Joined: Wed Nov 02, 2005 12:19 pm

BuildOPs and large files

Post by Larry.Griffith »

I am trying to use a BuildOP called MultipleFileWriter in a parallel job on an AIX server. It works a lot like the folder stage in a server job. It takes two columns, the first being a file name, and the second being a record and writes multiple files. Unfortunately, it does not seem to be large file enabled, it stops writing after 2G, does not fail, counts the records like it is still writing.

We regularly deal with files over 2G and know that most of the utilities we are using, including DataStage, can handle fiels over 2G,

I have seen this behaviour in other processes that are not large file enabled, so I tried to compile the process with compiler flags that I thought would generate a large file enabled routine, but I have not been able to come up with the right combination of options.

We are using the VisualAge C++ Professional V6 compiler and when I add teh -DLARGE_FILES -qlonglong options, I get

buildop -f -BC /usr/vacpp/bin/xlC_r -BL /usr/vacpp/bin/xlC_r -PC"-D_LARGE_FILES -qlonglong" -C buildop -H buildop -O buildop -W buildop buildop/LAGMultipleFileWriter.opd

##E TBLD 000000 Subprocess command failed with exit status 2,048.
##W TBLD 000000 Output from subprocess: ld: 0711-317 ERROR: Undefined symbol: .APT_SFloatDescriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: APT_IsDynamic::operator delete(void*)
ld: 0711-317 ERROR: Undefined symbol: .APT_DFloatDescriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_SFloatGFEquality::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_SFloatGFComparison::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_SFloatGFPrint::registerFunction()
ld: 0711-317 ERROR: Undefined sym
##I TBLD 000000 /usr/vacpp/bin/xlC_r -O -I/dms/Ascential/projects/DMSProjects/buildop -I/landing01/dataint/Ascential/DataStage/PXEngine/include -D_LARGE_FILES -qlonglong /dms/Ascential/projects/DMSProjects/buildop/bosource3072230-0.C -o /dmsscratch/tmp/bosource3072230-0_s.o.
##W TBLD 000000 Output from subprocess: bol: .APT_DFloatGFEquality::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_DFloatGFComparison::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_DFloatGFPrint::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int8Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_UInt8Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int16Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_UInt16Descriptor::reg
##W TBLD 000000 Output from subprocess: isterDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int32Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_UInt32Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int64Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_UInt64Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int8GFEquality::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int8GFComparison::registerFunction()
.
.
.
and on and on.

Can anyone help me with the correct compiler options to fix this problem?
Thanks
Larry
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

If you manually enter your compile from the command line does it compile without an error?

Code: Select all

/usr/vacpp/bin/xlC_r -O -I/dms/Ascential/projects/DMSProjects/buildop -I/landing01/dataint/Ascential/DataStage/PXEngine/include -D_LARGE_FILES -qlonglong /dms/Ascential/projects/DMSProjects/buildop/bosource3072230-0.C -o /dmsscratch/tmp/bosource3072230-0_s.o
Larry.Griffith
Premium Member
Premium Member
Posts: 7
Joined: Wed Nov 02, 2005 12:19 pm

Post by Larry.Griffith »

Long time coming, I know. Long story. Sorry.

No, the command by itself does not work. I did have to change the routien being compiled, and the .h file withing the routine to get it to compile without -D_LARGE_FILES and -qlonglong, but then when I added the options back, all the same errors.
Thanks
Larry
Post Reply