Question Ramesh Ramachandran · Mar 30, 2017

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

Comments

Eduard Lebedyuk · Mar 30, 2017

What's the status of:

Set tSC = ##class(Ens.Director).EnableConfigItem(pConfigItemName,0,1)
0
Ramesh Ramachandran  Mar 30, 2017 to Eduard Lebedyuk

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

0
Ramesh Ramachandran  Mar 30, 2017 to Ramesh Ramachandran

Also, it left the component in the disabled state.

0
Aline Rena · Jun 21, 2017

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.

0
Colin Brough  Jul 3, 2024 to Aline Rena

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. 

0