ErrJobRegistryNotClean
Hi,
We have an HTTP business operation where the messages gets stuck and we had to recycle the operation to resume the processing. We are trying to work around this (for time being until we find the root cause) using below code which should recycle the component.
Set tSC = ##class(Ens.Director).EnableConfigItem(pConfigItemName,0,1)
Set tSC = ##class(Ens.Director).EnableConfigItem(pConfigItemName,1,1)
However, it did not make any difference. When we manually recycle the operation, it prompts for the force update and we have to force it down. So I tried including Set tSC=##class(Ens.Job).Stop(pjobID,30,1) after the call to disable the operation.
Set tSC = ##class(Ens.Director).EnableConfigItem(pConfigItemName,0,1)
Set tSC=##class(Ens.Job).Stop(pjobID,30,1)
Set tSC = ##class(Ens.Director).EnableConfigItem(pConfigItemName,1,1)
That gave ERROR <Ens>ErrJobRegistryNotClean: Job registration global for job error.
Appreciate any assistance.
Thanks
Ramesh
What's the status of:
I couldn't trace the status.. But here is what I received in the event logs
Disabled item '<component name>' in Production '<Prod Name>'
Production '<Prod Name>' updating...
Stopping job '7804' (<component name>)
ConfigItem '<component name>' (<ClassName>) stopped in job 7804
ERROR <Ens>ErrJobRegistryNotClean: Job registration global for job '7492' is not clean
Also, it left the component in the disabled state.
It is not possible for a component within a production to update the production, which is what you are trying to do using the third parameter of EnableConfigItem equal to 1. That is why you are receiving ERROR <Ens>ErrJobRegistryNotClean (the process trying to update the production is trying to update itself).
You should update the production by running UpdateProduction via Job command, as follows:
Set tSC = ##class(Ens.Director).EnableConfigItem(pConfigItemName,0,0)
Set tSC = ##class(Ens.Director).EnableConfigItem(pConfigItemName,1,0)
job ##class(Ens.Director).UpdateProduction()
Hope this helps.
7 years after it was written, this comment helped us sort our problem - we are disabling components to prevent further attempts at processing on certain error conditions, and were struggling to get the EnableConfigItem() call to take effect immediately... Sorted now.