After adding a new parameter to an existing Parameter set, Information Server job fails
Problem(Abstract)
After adding a new parameter to an existing Parameter set, DataStage job fails with the error:
Controller problem: Error calling DSSetParam(PARAM_SET.$PARAM),code=-3
Symptom
After adding a new parameter to an existing Parameter set, Information Server job fails with the following error:
"Controller problem: Error calling DSSetParam(PARAMETER_SET.$PARAM_NAME),code=-3
[ParamName does not reference a known parameter of the job]"
Cause
The reason for this type of issue is usually there is a mismatch of the parameter set list used by sequence and its jobs.
Essentially a Parameter Set is a design-time object which provides a shorthand for a list of parameters so that the same list can be used in
multiple places.
Job compilation takes a snapshot of the job design and related objects and generates a job executable which is based on the state of those
objects at compile time.
For example, if Sequence job and a job both uses the parameter set. Adding a parameter to the Parameter Set and recompiling the Job sequence
gives us a mismatch between the Job and the Job Sequence hence the error.
If a Parameter Set is changed then all jobs that depend on it need to be re-compiled to ensure that they will continue to work.
Resolving the problem
To make sure every job that uses the Parameter Set stays in sync, please do the following:
- Go to the Parameter Set in the repository in Designer.
- Right click on the Parameter Set.
- Select "Find Where Used".
- Select "All Types".
- In the advanced find dialog, select all jobs that use this parameter set.
- Right click and choose Multiple Job Compile.
This way the parameter set will be in sync for all the jobs that use it.