problem with converting to 64 bit hash file

Post questions here relative to DataStage Server Edition for such areas as Server job design, DS Basic, Routines, Job Sequences, etc.

Moderators: chulett, rschirm, roy

Post Reply
mystuff
Premium Member
Premium Member
Posts: 200
Joined: Wed Apr 11, 2007 2:06 pm

problem with converting to 64 bit hash file

Post by mystuff »

Hi,

i am trying to convert a Hashfile from 32 to 64 bit.
I created a hash file,using Account Name.

This hash file contains 60 Million records,with 500 bytes of each record length.

While, conversion,it shows an error that
there is No space in the device.
Resize: Error on hash file not resized
mkbdfile: error initializing file.

Using HFC.exe,i generated the syntax and try to run the command from DSADMIN.

code:SETFILE hashfilename hasfilename OVERWriting

RESIZE hashfilename * * * 64BIT


we have already sufficient disk space,but still its giving the error.


if u need more info,please let me know.

any ideas?


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

Post by ray.wurlod »

You have run out of space on the file system where the hashed file lives. RESIZE makes a copy of the hashed file, so you need another file system that has at least this much space - plus the overhead of the larger (64-bit) internal pointers.

RESIZE has a USING option that you can use to specify a file system (that has lots of free space) on which the temporary copy can be placed. For example, assuming /usr/tmp were such a file system:

Code: Select all

RESIZE hashedfilename * * * 64BIT USING /usr/tmp
Incidentally, the correct terminology is hashed file, not hash file.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
mystuff
Premium Member
Premium Member
Posts: 200
Joined: Wed Apr 11, 2007 2:06 pm

Post by mystuff »

ray.wurlod wrote:You have run out of space on the file system where the hashed file lives. RESIZE makes a copy of the hashed file, so you need another file system that has at least this much space - plus the overhead of the larger (64-bit) internal pointers.

RESIZE has a USING option that you can use to specify a file system (that has lots of free space) on which the temporary copy can be placed. For example, assuming /usr/tmp were such a file system:

Code: Select all

RESIZE hashedfilename * * * 64BIT USING /usr/tmp
Incidentally, the correct terminology is hashed file, not hash file.
Thanks ray,
but i have sufficient space on device.
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Not according to your error! As noted, make sure you have room for two copies of the hashed file, at least temporarily.
-craig

"You can never have too many knives" -- Logan Nine Fingers
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

Try this to prove the point that Ray and Craig are trying to make. Do an ANALYZE.FILE to get the modulo for the current file. Then do a "CREATE.FILE NewFile DYNAMIC GENERAL MINIMUM.MODULO {mod} 64BIT". This will create an empty file that is presized. If you can create the file, then you can issue a "COPY FROM OldFile TO NewFile ALL"
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

... provided you've got enough disk space to create the new hashed file, and you use MINIMUM.MODULUS (not MINIMUM.MODULO - Arnd is living in the past, static hashed file, world!).
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
Post Reply