Page 1 of 1

Datastage phantom error

Posted: Tue Oct 18, 2005 2:24 am
by roopaknair
Hi All,

I am getting a Warning in my Datastage server job," Phantom 3812, Variable previously defined, Zero length string used." The same job was running previously without problems. Now suddenly this error is starting to show. Can somebody please help why this would be happening?

Roopak

Posted: Tue Oct 18, 2005 2:29 am
by ArndW
Hello roopaknair,

The message probably reads "Variable previously undefined..."; it means that the first use of the variable was to see it's value instead of assigning one to it.

You should check your TRANSformer stages in the job and look at stage variables or usage of parameters to perhaps spot an error.

If you cannot find it through that method then you could use the line number shown in the error message and look at the source code of that job stage to track it down, but that it usually more work than looking at the job directly.

If you are certain that nothing has changed in the program then the cause must be data driven - does your job contain any branches or conditionals?

Posted: Tue Oct 18, 2005 3:06 am
by roopaknair
Hi ArndW ,

I removed all the parameters and stage variables in the TRANSformer stage but i m still getting the error. I am now finding that it is happening for all the jobs wherein an ODBC stage is present. I am passing the DSN, User Name and password as parameters to these ODBC stage jobs. The warning is

DataStage Job 577 Phantom 3812
Program "DSD.BCIGetInfo": Line 61, Variable previously undefined. Zero length string used.
Program "DSD.BCIGetInfo": Line 61, Variable previously undefined. Zero length string used.
DataStage Phantom Finished

Thanks for the help

Posted: Tue Oct 18, 2005 3:16 am
by ArndW
Most likely you have misspelled one of the parameter names, that would explain the error. Variable names such as parameters are case-sensitive. If you can't find the problem, replace the parameters with constant values until the error goes away.

Posted: Tue Oct 18, 2005 4:13 am
by ray.wurlod
The same job was running previously without problems.

What has changed? "Nothing" is not the correct answer.

Posted: Tue Oct 18, 2005 6:53 am
by roopaknair
Hi ArndW,Ray

Even when I replaced the job parameters with constant values, the phantom error keeps coming. So right now the server job which I am running does not have any job parameters and only hardcoded values and still shows the error.

The appearence of the phantom error was very surprising as till yesterday afternoon the jobs were running fine and they started showing this error suddenly yesterday evening. Can any change or the datastage environment becoming corrupt cause this problem?

Thanks Roopak

Posted: Tue Oct 18, 2005 7:06 am
by gpatton
Are you invoking this job from a sequencer?

Posted: Tue Oct 18, 2005 8:23 am
by roopaknair
Yes i want to invoke this job from a sequencer. But the error comes even when i dont invoke it with a sequencer but run the job as it is by itself and give constant values.

Posted: Tue Oct 18, 2005 8:34 am
by I_Server_Whale
OK....Now is the fun part. TROUBLESHOOTING. :)

How many stages does your job have? Could you tell us more about what you are trying to achieve with your job?

If your job is not big enough. I would advise you to redesign the job and see what happens. In this new job do not use any variables and parameters.
Hard-code all the values and see if you still get the message.

Thanks,
Naveen.

Posted: Tue Oct 18, 2005 9:31 am
by gpatton
If you export the job in question to a dsx file and then look at the parameters section, do you see any special characters or a line feed or carriage return in the export that may be difficult to see in the job itself?

Posted: Tue Oct 18, 2005 10:04 am
by crouse
I seldom see this error from a job that DOES NOT contain reference to a routine. The error is usually in the routine.

Since routines are dynamically linked at runtime, another developer could have modified and compiled the routine, then the errors magically start appearing the next time the job(s) is run, even though "you" did not change a thing.

Posted: Tue Oct 18, 2005 10:43 am
by kcbland
Or there could be a routine with conditional logic with a path that is mostly never traversed. Maybe nowyour source data is in a condition that is causing that branch to be used, and it references a variable previously not set.

Edited: corrected "past" to "path"

Posted: Tue Oct 18, 2005 4:44 pm
by ray.wurlod
When you reset the job, the "from previous run..." event should identify the actual stage in which the problem occurred, even if the original message did not. Did you post the entire error message?

It's odd that the message is being reported from DSD.BCIGetInfo. This function is used by ODBC and UniVerse stages to request information from the data source about syntax. (That is, it may not be your error.) Has anything changed vis-a-vis the ODBC driver?

What does your support provider say?

Can you reproduce it in a second job?

Posted: Fri Oct 21, 2005 11:04 am
by roopaknair
Hi All,

I redesigned the job and it still did not solve the problem.

But the problem got solved when I created a new project in the same server and exported the files from the old project and imported it into the new one. Possibly the old project had got corrupted due to some reason.

Thanks for all the help
Roopak

Posted: Fri Oct 21, 2005 5:29 pm
by ray.wurlod
What happens if you rename the old job then import into the old project?