Buffer Overflow Reading Input Record Contining HEX 00 Value

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
nbdbzv4
Participant
Posts: 4
Joined: Thu Oct 26, 2006 11:38 pm
Location: Concord, Ca

Buffer Overflow Reading Input Record Contining HEX 00 Value

Post by nbdbzv4 »

We are encountering a 'Buffer Overflow' condition when reading a sequential file created by an IBM mainframe system. When a HEX 00 value is encountered, DataStage seems not to recognize it but treats it as end without using an end of file mark. The next record is then shifted over to begin at that position. How can we identify this HEX 00 character and replace it during the sequential file input stage?

Thanks
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Try changing APT_STRING_PADCHAR to something other than 0x00 (for example 0x20 which is a space character). This may or may not work.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Minhajuddin
Participant
Posts: 467
Joined: Tue Mar 20, 2007 6:36 am
Location: Chennai
Contact:

Post by Minhajuddin »

Write a small script which deletes the '0x00' character or replaces it with '0x20' as Ray pointed. Then use this script as a pre-processing step for the job (You can call it from the before job routine).
Minhajuddin

<a href="http://feeds.feedburner.com/~r/MyExperi ... ~6/2"><img src="http://feeds.feedburner.com/MyExperienc ... lrow.3.gif" alt="My experiences with this DLROW" border="0"></a>
OddJob
Participant
Posts: 163
Joined: Tue Feb 28, 2006 5:00 am
Location: Sheffield, UK

Post by OddJob »

I would be asking why you're getting 0x00 in your data to start with.

Is the value found in a character field? If so, are you receiving EBCDIC data that should be flagged as such?

If the value is found in a 'binary' field such as an intger type, are you defining the field correctly in the columns section? You may have to sepcify the number of bytes you're expecting in the input file for these fields.

How did you derive your columns, from a PL1/Cobol Copybook file?
Post Reply