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

0
0 687
Discussion (4)2
Log in or sign up to continue

What's the status of:

Set tSC = ##class(Ens.Director).EnableConfigItem(pConfigItemName,0,1)

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

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.