Finding Error logged in file in the &PH& directory

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
tonystark622
Premium Member
Premium Member
Posts: 483
Joined: Thu Jun 12, 2003 4:47 pm
Location: St. Louis, Missouri USA

Finding Error logged in file in the &PH& directory

Post by tonystark622 »

I have a file called DSD.RUN_21604_13472 in the &PH& directory that contains:
DataStage Job 91 Phantom 23365
[23385] Done : DSD.StageRun NewTransDai8. NewTransDai8.NEW_TRANSACTIONS 114 0/50
[23384] Done : DSD.StageRun NewTransDai8. NewTransDai8.DEFAULT_EMAIL_ADDR.IDENT1 114 0/50
Program "DSLogInfo": Line 60, Variable "CallerName" previously undefined. Empty string used.
Program "DSLogInfo": Line 60, Variable "CallerName" previously undefined. Empty string used.
DataStage Phantom Finished.
I am trying to resolve the 'Variable "CallerName" previously undefined. Empty String used.' errors that occurred. It looks to me as if the transformers in the job started. Can I tell if they finished before the error message was written?

This job has Before Job and After Job routines. I suspect that the calls to DSLogInfo that cause the error are probably in the After Job routine because the Transformers appear to at least have started before the error is written. I have the following statement at the top of the After Job routine:

Code: Select all

JobName = DSGetJobInfo(DSJ.ME, DSJ.JOBNAME)
and all the places that use DSLogInfo are in the form:

Code: Select all

Call DSLogInfo(Msg, JobName)
Can anyone tell me how to determine where the error is actually occuring?

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

Post by ray.wurlod »

The error is in a call to DSLogInfo (presumably in one of your routines). CallerName is the second argument to DSLogInfo.

Code: Select all

Call DSLogInfo(Message, CallerName)
Chances are you've used a variable name for the second argument and that that variable has not been assigned a value in your routine.

Nothing in &PH& will give you any more information on this one than you already have. If you reset the job, the error information will be transferred to your job log. But it won't help.

You could look in the files in the RT_BP91 directory in your project directory on the server, to find the files indicated in the error messages, and these will show the calls to DSLogInfo. But you probably already know where they are in any case, simply by inspecting your Routine code.

Don't forget to check any transform function Routines that might have been invoked from the Transformer stage(s) also.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
tonystark622
Premium Member
Premium Member
Posts: 483
Joined: Thu Jun 12, 2003 4:47 pm
Location: St. Louis, Missouri USA

Post by tonystark622 »

Thanks, Ray. Right on, as always.

The problem was that the variable used was named JobName, but in several cases the routine author had used Jobname (note the 'n' is not capitalized). I finally ended up commenting out all the calls to DSLogInfo, then uncommenting them a few at a time until it became obvious to me what the problem was.

Thanks for your help!

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

Post by ray.wurlod »

Because DataStage helpfully substituted a zero-length string for the unassigned variable (Jobname), the only impact was that the logged message had nothing in the parentheses instead of the job name in the parentheses. 8)
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