Hi
Is there a way to extract Invocation Id Expression from all sequencers in project?
Thanks in advance
Extract Invocation Id Expression from all sequencers in proj
Moderators: chulett, rschirm, roy
craig,
sorry for delayed response.
By Invocation id expression, i mean the expression we used to create a unique DSJobinvocationId for Job Activity in sequencer.
Here is a sample expression we are using.
SequencerName:"_":PrevJob.$JobName:"_":DSJobInvocationId
Where SequencerName is a jobparameter.
we are migrating from 7.x to 8.1 and facing some issues with DSJobInvocationId expression evaluation. The above expression does not evaluate completely in v8.1 but works fine in 7. This issue is with IBM support now.
Meanwhile, we are looking to find out all invocation ids from the project and figure out a way to change them.
based on the following post, i found a solution to find all invocations.
viewtopic.php?t=99047&postdays=0&postor ... lt&start=0
RECORD 15 and RECORD 17 in DS_JOBOBJECTS where DS_JOBOBJECTS.OLETYPE='CJSJobActivity' give DSJobInvocationId for a JobActivity in a sequencer.
What is the difference between these? Also is there a way to quickly to modify the DSJobinvocation by updating DS_JOBOBJECTS? we have about 5000 invocations to modify.
sorry for delayed response.
By Invocation id expression, i mean the expression we used to create a unique DSJobinvocationId for Job Activity in sequencer.
Here is a sample expression we are using.
SequencerName:"_":PrevJob.$JobName:"_":DSJobInvocationId
Where SequencerName is a jobparameter.
we are migrating from 7.x to 8.1 and facing some issues with DSJobInvocationId expression evaluation. The above expression does not evaluate completely in v8.1 but works fine in 7. This issue is with IBM support now.
Meanwhile, we are looking to find out all invocation ids from the project and figure out a way to change them.
based on the following post, i found a solution to find all invocations.
viewtopic.php?t=99047&postdays=0&postor ... lt&start=0
RECORD 15 and RECORD 17 in DS_JOBOBJECTS where DS_JOBOBJECTS.OLETYPE='CJSJobActivity' give DSJobInvocationId for a JobActivity in a sequencer.
What is the difference between these? Also is there a way to quickly to modify the DSJobinvocation by updating DS_JOBOBJECTS? we have about 5000 invocations to modify.
I honestly don't know the difference between whatever function records 15 & 17 provide as that's secret repository, inner circle stuff.
I would suggest your best method to make a mass change like that is to export the multi-instance jobs and make the change to the dsx using your editor of choice. Then re-import of course.
Out of curiousity, what does "does not evaluate completely" mean? Which bit is not working?
I would suggest your best method to make a mass change like that is to export the multi-instance jobs and make the change to the dsx using your editor of choice. Then re-import of course.
Out of curiousity, what does "does not evaluate completely" mean? Which bit is not working?
-craig
"You can never have too many knives" -- Logan Nine Fingers
"You can never have too many knives" -- Logan Nine Fingers
Thanks for quick reply.
After looking at dsx file, looks like RECORD 15 is Description, RECORD 17 is DisplayValue from DSRECORD.
And Regarding the issue,
in v7
SequencerName:"_":PrevJob.$JobName:"_":DSJobInvocationId evaluates to XYZ_PREVJOB_INSTANCE1
XYZ_PREVJOB_INSTANCE2 etc.,
and in v8
it just evaluates to XYZ_PREVJOB and if two instances run parallelly second instance fails with
Controller problem: Error calling DSRunJob(......) code=-2 [Job is not in the right state (compiled and not running)]
If we change the order of the variables in the expression it works.
SequencerName:"_":DSJobInvocationId:"_":PrevJob.$JobName
After looking at dsx file, looks like RECORD 15 is Description, RECORD 17 is DisplayValue from DSRECORD.
And Regarding the issue,
in v7
SequencerName:"_":PrevJob.$JobName:"_":DSJobInvocationId evaluates to XYZ_PREVJOB_INSTANCE1
XYZ_PREVJOB_INSTANCE2 etc.,
and in v8
it just evaluates to XYZ_PREVJOB and if two instances run parallelly second instance fails with
Controller problem: Error calling DSRunJob(......) code=-2 [Job is not in the right state (compiled and not running)]
If we change the order of the variables in the expression it works.
SequencerName:"_":DSJobInvocationId:"_":PrevJob.$JobName
The record types in DS_JOBOBJECTS vary by OLETYPE. OLETYPE is a field in the table. The ROOT record is a special record where job level data is stored like parameter names and their defaults.
DSJobActivity is pretty much what it looks like. These records store Stages which run other jobs in this job sequence. These records store invocation ids and parameter names and values.
Craig is correct this is inner workings of DataStage and can change from release to release. So be careful. You can find what to change this way. I would not update these records directly.
DSJobActivity is pretty much what it looks like. These records store Stages which run other jobs in this job sequence. These records store invocation ids and parameter names and values.
Craig is correct this is inner workings of DataStage and can change from release to release. So be careful. You can find what to change this way. I would not update these records directly.
Mamu Kim