Monday, 9 December 2019

arcgis desktop - ArcMap.exe processes stay open after closing ArcMap?




I realized that this is happening months ago when I was not able to alter table structure in an instance of ArcMap after another instance was closed. When, for example, I remove or add some fields to a feature class in ArcMap, save and close the document and open ArcCatalog and attempt to delete that particular Feature Class I get the Delete Failed: Failed to delete selected object(s) error. This usually happens when an instance of ArcMap that contains layers which I am trying to delete is opened so the workaround is to fire up the Windows Task Manager and kill the ArcMap.exe processes that are for some reason still opened.


Anybody else having this issue?


Now running SP3 and the issue has not been solved.


enter image description here




I am running a very similar setup on a comparable machine and I do not have this issue there.



Answer



Not your fault and not much you can do about it. However, if you are curious about the reason, what happens is that there is a COM circular reference (most likely to something listening to some event source - like the Editor) and when the applications attempts to exit it cannot, because some objects are keeping each other alive. This can be from an extension that you have installed, or even from within ESRI code itself. This used to happen all the time and it may only manifest itself under certain conditions, like certain commands being visible in the toolbar.


From an old ArcObjects tutorial on COM concepts:




When the application exits, it releases the reference it holds to the command. If the command also serves as an event sink, the application holds another reference to the command, which cannot be released until the command disconnects from the source. As the command does not know of a point at which it can disconnect other than its own destructor, this causes a circular reference whereby the application cannot exit without the command destroying and the command's destructor never gets called because the application holds a reference to the command. This causes the application to hang on exit.



If you are even more curious, delete (or backup) your Normal.mxt, which will wipe out all customizations and see if this problem persists.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...