I am seeing a stange behaviour while running a server job. I can see the statistics on Designer showing that over million records are written to the file but in unix the file size is 0. Job is still running.
Job design is:
MQ Stage---> Transformer--->SeqFile
I was thinking the file size will grow but it's 0. Can someone tell me what could be the reason ?
Thanks
Last edited by kaps on Tue Oct 02, 2007 3:47 pm, edited 1 time in total.
Some of that kind of information isn't flushed to disk until the file is closed. As far as I know, it can depend on your O/S and be affected by kernel or disk settings as well.
-craig
"You can never have too many knives" -- Logan Nine Fingers
Delete your empty file. Re-run the job with the correct parameter setting (confirm the setting in the director log entry for the job). Is the empty file created again? Do you have an after-job subroutine that might touch the file?
I can't rerun the job as this job is doing destructive read from MQ. If I stop the job all the messages will be gone and I don't have a way to recover them.
if the job is still running then your data might be buffered and not flushed to disk. You won't know the actual file contents until the job completes.
Try doing a 'fuser -fux {filename}' to see if your DataStage job actually has this file open for write; you might be looking at the wrong file.
I see the file size growing in other jobs even when they are running. what could be the reason for that ?
When I did fuser -fux filename I did not get any reply back. It simply prrints the filename with the : at the end...what does that means ?
Problem here is that this job will be running all the time. I need to run another job to stop this job. I am afraid If I run the stop job I will loose the records.
What Am I missing here ?
Thanks for your help
Last edited by kaps on Tue Oct 02, 2007 4:41 pm, edited 1 time in total.
kaps - when fuser doesn't return anything it means that no process has the file open. Check your job parameters again to see what the output file should be. If you are certain that you are looking at the correct file then you should check to see if the job is actually still running by using "ps -ef | grep {yourjobname}".
So the job is still running and when u say show file data it does not give u an error saying the file in Use?
If that is the case then i think the job is not doing anything (did not even trigger) , so u may want to stop it and replace the seq file with an hashed file and check it out.
Thanks
Deepak Patil
Convince Them Confuse Them .. What's the difference?
Kaps, login to a terminal session as dsadm (that isn't a good userid to run jobs as) and do a "truss -p 3002612" and see what that process is doing. It might be doing nothing, i.e. calls to SLEEP.