Page 1 of 2

ds_uvput() - Write failed for record id '35612396'

Posted: Thu May 12, 2011 4:56 am
by asrnl
Im getting an error for an serverjob, which is using a hash-file. The hash-file size gets bigger then 2 gb and gives me the next error:

ds_uvput() - Write failed for record id '35612396'

Message: DataStage Job 35 Phantom 4298
Program "JOB.1056046522.DT.1583741912.TRANS2": Line 123, Internal data error.
Job Aborted after Fatal Error logged.
File '/appl/dwa00p/hashed/amf/dwa_ulb_azkr//DeclDet1/DATA.30':
Computed blink of 0x844 does not match expected blink of 0x0!
Detected within group starting at address 0x80051800!
Attempting to Cleanup after ABORT was raised in stage StagingFctSchadeUitkering..Transformer_98
DataStage Phantom Aborting with @ABORT.CODE = 1

How can is solve this problem?

Posted: Thu May 12, 2011 5:10 am
by ray.wurlod
You have a corrupted hashed file, caused (apparently) by taking its size over 2GB with only 32 bit pointers.

To fix, you need to convert the hashed file to 64-bit addressing.

Posted: Thu May 12, 2011 6:43 am
by asrnl
Thanks for your reply.
How can i convert the hashed file to 64-bit? And i have the next options checked:
-Create file
-Clear file before writing
-Delete file before create

If i convert the file, after restart, the job will make a new 32-bit file, or am i wrong?

Posted: Thu May 12, 2011 7:00 am
by chulett
The stage only creates 32bit hashed files for some reason. You'll need to create it one time as 64bit from the command line and then have the stage simply clear it. A before-routine could emulate the settings you are using in the stage - delete and recreate - and then the job could just use it.

To create one with 64bit addressing, just take the normal command line and add -64BIT to it.

ps. All of this would have been found with an exact search for "Computed blink" in the forums here.

Posted: Thu May 12, 2011 7:40 am
by asrnl
chulett wrote:The stage only creates 32bit hashed files for some reason. You'll need to create it one time as 64bit from the command line and then have the stage simply clear it. A before-routine could emulate the ...
It says premium content, so cant read the rest.

So the solution is:
RESIZE hashedfilename * * * 64BIT
and what do you mean with the stage simply clear it?

Posted: Thu May 12, 2011 8:02 am
by chulett
Why not renew your membership and read the entire message? By "simply clear it" I meant uncheck the other two options you listed.

Posted: Thu May 12, 2011 9:33 am
by asrnl
thats a good idea, i thought we had a premium membership, but i will check it.

But one more question. If i create a new hash file, i see that there is also a voc file that is created. Do i need to do something with that file?

Posted: Thu May 12, 2011 9:39 am
by chulett
The VOC record depends on how you create it. For a pathed hashed file, use the mkdbfile command you'll find in any job's log that has created one for you.

Posted: Thu May 12, 2011 10:00 am
by asrnl
chulett wrote:The VOC record depends on how you create it. For a pathed hashed file, use the mkdbfile command you'll find in any job's log that has created one for you. ...
Yes it uses a pathed hashed file. In the log its says:
Creating file DeclDet1, executing command /appl/dstadm/IBMIS/Server/DSEngine/bin/mkdbfile /appl/dwa00p/hashed/amf/dwa_ulb_azkr//DeclDet1 30 1 4 20 50 80 1628

So i dont need to do something with the VOC?
I now have the next steps i will follow:

1. clear the hashed-dir
2. create the hashed fil with CREATE.FILE NAME DYNAMIC 64BIT (If you create the file in the project tab, it wil save the file in the project directory. Is it possible to save the files in an specified directory? )
3 uncheck Create file.
4. uncheck Delete file before create.
5. run the job

Posted: Thu May 12, 2011 2:14 pm
by ray.wurlod
If you create the hashed file in a directory you will need to create an entry in the VOC file using the SETFILE command.

Posted: Thu May 12, 2011 4:28 pm
by chulett
Why are you using CREATE.FILE? That is for creating one in an "account", i.e. a project. As noted, a pathed hashed file is created using mkdbfile as your log entry showed and can be created anywhere.

Posted: Fri May 13, 2011 6:56 am
by asrnl
Ok i got that now. But the issue now is if i use the command:
Creating file DeclDet1, executing command /appl/dstadm/IBMIS/Server/DSEngine/bin/mkdbfile /appl/dwa00p/hashed/amf/dwa_ulb_azkr//DeclDet1 30 1 4 20 50 80 1628 64BIT

It returns: Verb "Creating" is not in your VOC.
I dont have acces to /appl/dstadm with my account, no permission. Will this works with the right permission? Because im not an admin user.

Posted: Fri May 13, 2011 7:28 am
by chulett
A) You need to run it from the command line, not TCL.
B) Do not include the "Creating file DeclDet1, executing command " verbiage, just the command itself. :?

Posted: Fri May 13, 2011 8:00 am
by asrnl
chulett wrote:A) You need to run it from the command line, not TCL.
B) Do not include the "Creating file DeclDet1, executing command " verbiage, just the command itself. :? ...
I use the command line and the command /appl/dstadm/IBMIS/Server/DSEngine/bin/mkdbfile /appl/dwa00p/hashed/amf/dwa_ulb_azkr//DeclDet1 30 1 4 20 50 80 1628 64BIT
But it still gives the error: not in your VOC?

Posted: Fri May 13, 2011 9:24 am
by chulett
Then you are not at the command line, which means logged in at the O/S level. You are still trying to run this from TCL or the Administrator client. Don't.