ArcMap.exe 프로세스가 ArcMap을 닫은 후에도 계속 열려 있습니까? [닫은]


23

다른 인스턴스가 닫힌 후 ArcMap 인스턴스에서 테이블 구조를 변경할 수 없었던 몇 달 전에 이런 일이 일어나고 있음을 깨달았습니다. 예를 들어 ArcMap에서 피쳐 클래스에 일부 필드를 제거하거나 추가 할 때 문서를 저장하고 닫은 다음 ArcCatalog를 열고 해당 특정 피쳐 클래스를 삭제하려고하면 삭제 실패 : 선택한 객체를 삭제하지 못했습니다 오류가 발생합니다. 이것은 일반적으로 삭제하려고하는 레이어가 포함 된 ArcMap 인스턴스가 열리면 해결 방법은 Windows 작업 관리자를 시작하고 어떤 이유로 여전히 열려있는 ArcMap.exe 프로세스를 종료하는 것입니다.

다른 사람이 문제가 있습니까?

이제 SP3을 실행해도 문제가 해결되지 않았습니다.

여기에 이미지 설명을 입력하십시오


비슷한 컴퓨터에서 매우 유사한 설정을 실행하고 있으며이 문제가 없습니다.


4
예! ESRI 포럼에서 내 포럼 게시물 을 참조하십시오 . ESRI로 티켓을 개봉하기 위해 그것을 재현하려고합니다 (임의로 보입니다 ...).
SaultDon

타사 확장 프로그램이로드되어 있습니까? IExtension.Shutdown에서 예외가 설명되어 있는지 궁금합니다.
Kirk Kuykendall

@kirk이 v10 설치에는 설치 한 적이 없으며 설치 한 적이 없습니다. 이것은 심지어 Windows7의 새로운 설치입니다. 당신과 마찬가지로, 이것은 SP1 이전부터 지속되었습니다.
SaultDon

2
거의 100 개의 프로세스를 실행하고 있으며 실제로 무엇이든 될 수 있지만 바이러스 스캐너, 백업 소프트웨어 및 검색 인덱싱 서비스가 가장 의심됩니다.
blah238

@ Kirk-이 특정 설정에 대한 확장 기능은 없지만 작업 할 때 다시 확인합니다. 나만의 고유 한 도구가 몇 개 있습니다. 동일한 추가 기능을 사용하는 다른 Windows 7 컴퓨터에서도 비슷한 설정이 있으며 아무런 문제가 없습니다.
Jakub Sisak GeoGraphics

답변:


18

당신의 잘못이 아니고 당신이 할 수있는 일은 많지 않습니다. 그러나 그 이유가 궁금하다면 COM 순환 참조가 있고 (편집기와 같은 일부 이벤트 소스를 듣는 것이있을 가능성이 높음) 응용 프로그램이 종료하려고 할 때 일부 개체가 유지되므로 서로 살아있다. 이것은 설치 한 확장 또는 ESRI 코드 자체에서 제공 될 수 있습니다. 이것은 항상 발생했으며 툴바에 특정 명령이 표시되는 것과 같은 특정 조건에서만 나타납니다.

COM 개념에 대한 오래된 ArcObjects 튜토리얼에서 :

응용 프로그램이 종료되면 명령에 대한 참조가 해제됩니다. 명령이 이벤트 싱크로도 사용되는 경우 응용 프로그램은 명령에 대한 다른 참조를 보유하며 명령이 소스와 연결이 끊어 질 때까지 해제 할 수 없습니다. 명령은 자체 소멸자 이외의 연결을 끊을 수있는 지점을 알지 못하므로 순환 참조를 발생시켜 명령을 삭제하지 않고 응용 프로그램을 종료 할 수 없으며 응용 프로그램이 명령에 대한 참조를 보유하므로 명령의 소멸자가 호출되지 않습니다 . 이로 인해 응용 프로그램이 종료 될 때 정지됩니다.

더 궁금한 경우 Normal.mxt를 삭제 (또는 백업)하십시오. 그러면 모든 사용자 지정 내용이 지워지고이 문제가 지속되는지 확인합니다.


3
+1 좋은 설명. 하나를 제외한 모든 명령 표시 줄을 닫은 다음 저장하고 종료하고 문제를 재현하려고 시도하는지 궁금합니다. 툴바가 표시 될 때까지 ICommand.OnCreate가 호출되지 않는다고 생각합니다. 점차 툴바를 켜고 테스트를 반복하면 의심스러운 명령 목록을 좁힐 수 있습니다.
Kirk Kuykendall

좋은 설명입니다. 감사. @ Kirk-잊어 버린 타사 도구가 있습니다 (ArcBruTile). 나는 그것을 제거 할 것입니다. 내 추가 기능은 실제로 일부 이벤트 수신을 수행하므로 툴바가 문제의 원인이 될 수 있습니다. 이상한 점은 다른 컴퓨터에 동일한 도구가 있고 동일한 기본 도구 모음 세트가로드되어 있으며이 문제가 없다는 것입니다. 나는 새로운 Normal.mxt로 시작하려고 노력할 것입니다. 그것은 좋은 제안입니다.
Jakub Sisak GeoGraphics

또한 때때로 눈에 보이는 행위가 순환 참조를 유발하기에 충분하지 않은 경우가 있습니다. 해당 조건이 나타나기 위해서는 약간의 이벤트가 필요할 수 있습니다. 예를 들어, 명령을 볼 수 있으며 모든 것이 정상이며 "StartEditing"이벤트가 발생할 때까지 대기합니다. 일단 트리거되면 다른 것들에 대한 참조를 잡기 시작하기로 결정하고 순환 조건을 유발하는 다른 참조를 설정합니다. 이 VB 확장에 더욱 .NET 명령 때문에 비 결정적 가비지 컬렉션의 고전 문제였다
라기 Yaser Burhum

2

이 문제를 해결해 주신 @Kirk와 @Ragi에게 감사합니다! 작업 관리자 프로세스를 모니터링하는 동안 수행 한 작업은 다음과 같습니다.

  1. Normal.mxt 백업 및 삭제
  2. 새로운 ArcMap 문서 시작 (기본 구성에서 ArcMap 열기)
  3. 닫힌 ArcMap (프로세스가 예상대로 닫혔습니다)
  4. 추가 된 Toobar : 3D 분석가, 고급 편집, 데이터 프레임 도구, 정점 그리기, 정점 편집, 편집기, 지리 참조, 레이블, 레이아웃, 스냅
  5. 정렬 된 툴바
  6. 닫힌 ArcMap (프로세스가 예상대로 닫혔습니다)
  7. 새로운 ArcMap 문서 시작
  8. 애드 인이있는 나만의 커스텀 툴바 추가
  9. 닫힌 ArcMap (프로세스가 예상대로 닫혔습니다)
  10. 기존 ArcMap 문서 시작
  11. 툴바 및 여러 가지 사용자 정의 도구에서 사용자 정의 시작 및 편집 중지 사용
  12. 닫힌 ArcMap (프로세스가 예상대로 닫혔습니다)

또한 ArcBruTile을 제거하고 삭제했습니다.

ArcMap 프로세스가 예상대로 닫힙니다.


2
너무 빨리 말했다. 문제가 돌아 왔습니다.
Jakub Sisak GeoGraphics

불행히도 ESRI 지원팀은 위의 답변이 작동하지 않는 것처럼 해결책으로 위의 답변을 복사하여 붙여
넣었습니다 ./

@Jakub이 문제에 대한 해결책을 찾은 적이 있습니까? 추가 기능을 만들고 있으며 최근에 종료 후 여러 ArcMap 프로세스가 실행되는 것을 알았습니다.
Barbarossa

합의는 프로세스가 열리고 타사 애드 인 / 확장에 의해 올바르게 닫히지 않은 것 같습니다. 나는 내 자신의 addins을 빌드하고 모든 객체가 공개되도록 보장하는 모든 코드를 살펴 보았을 수도 있고 ESRI가 10.3에서 더 이상 발생하지 않아서 소스에서 문제가 해결되었을 가능성이 높습니다. 10.2. 이 문제가 계속 발생하면 모든 타사 애드 인을 제거 및 제거하고 여전히 문제가 있는지 확인하십시오. 계속 돌리지 않으면 범인을 찾기 위해 하나씩 추가하십시오. 이것이 도움이되기를 바랍니다.
Jakub Sisak GeoGraphics

2

이 게시물을 다시 가져 오지 않으려 고하지만 Citrix 서버에서이 문제에 대한 ESRI 지원 작업을 수행하는 동안 (사용자 충돌 또는 로그 아웃시 arcgiscachemanager.exe는 20-30 분 후에 종료되지 않습니다. 사용자는 ArcMap에 다시 접속할 수 없으며 서버에 로그인하여 수동으로 해제하려면 2 명의 서버 관리자에게 의존해야합니다.) ESRI가이 페이지에서 솔루션을 복사하여 붙여 넣어도 작동하지 않습니다. Citrix 환경에서 작업 할 때는 최소한 아닙니다.

Citrix의 경우 두 개의 레지스트리 키 (중지 된 프로세스를 종료하기위한 것, 설정을 원래 상태로 다시 푸시하기위한 것)를 만드는 것이 문제를 "수정"한 것으로 나타났습니다.

비 Citrix의 경우 프로세스를 종료하기 위해 스크립트를 작성한다는 아이디어를 가지고 놀았지만 Citrix에 있지 않을 때는 이미 서버에 있으므로 필요하지 않다고 결정했습니다.

이것이 도움이되기를 바랍니다.

에스컬레이션 된 지원 티켓에서 복사 된 데이터 ------- Citrix에는 백그라운드에서 보조 프로세스를 생성하는 응용 프로그램을 관리하는 데 도움이되는 레지스트리 키 설정이 있습니다. 이 솔루션을 적절한 설정으로 만들어야하는 많은 증상이 있습니다. 다음 Citrix 기술 자료를 살펴보십시오.

게시 된 응용 프로그램에서 정상적으로 로그 오프하면 세션이 활성 상태로 렌더링됩니다. http://support.citrix.com/article/CTX891671

Windows Server 2003에서 Windows Server 2008로 업그레이드 할 때 XenApp 환경에서 사용자가 로그 오프 한 후 활성 세션 : http://support.citrix.com/article/CTX134956

XenApp 6.5 AppCenter Console에 응용 프로그램 상태 응용 프로그램이 실행되고 있지 않음이 표시됨 : http://support.citrix.com/article/CTX133328

이 기사에서는 게시 된 응용 프로그램으로 인해 세션이 닫히지 않거나 사용자가 제대로 로그 오프되지 않는 방법에 대해 설명합니다. 이러한 경우 관리자가 세션을 재설정하거나 종료해야하거나 여전히 실행중인 서버에서 프로세스를 종료해야합니다. Citrix에서 발생하는 일은 사용자의 경우 ArcMap과 같은 주 응용 프로그램을 게시하는 것입니다. 응용 프로그램을 종료하거나 충돌하는 경우 해당 exe 만 닫힙니다. 결과적으로 응용 프로그램을 열 때 생성 된 응용 프로그램과 관련된 exe는 Citrix에서 완전히 닫히지 않으므로이 상태가됩니다. 따라서 ArcGISCacheMgr.exe를 실행하는 데 시간이 오래 걸리거나 응용 프로그램이 충돌하면 최종 사용자가 새 세션을 시작할 수 없습니다.

이 문서에서는 이러한 보조 프로세스를 레지스트리 키에 추가하여 기본 응용 프로그램을 닫을 때 자동으로 닫는 방법에 대해 설명합니다. 탐색 할 수있는 또 다른 옵션은 프로세스를 확인하고 존재하는 경우 종료하는 로그 오프 스크립트입니다.


2

.bat 파일을 작성하여 붙여넣고 데스크탑에 저장하십시오.

 taskkill /IM ArcGisCacheMgr.exe /f
 taskkill /IM ArcGisConnection.exe /f
 "C:\Program Files (x86)\ArcGIS\Desktop10.1\bin\ArcMap.exe"

4
이러한 명령 (및 해당 옵션)이 수행하는 작업에 대한 설명은 시작하지 않은 솔루션을 이해하는 데 도움이됩니다.
whuber

1

PsKill 로부터 시스 인 터널 스위트 (내 의견으로는 필수 툴킷 근처 이놈은) 바로 가기 링크 및 정지 된 프로세스를 정리 마음대로 해고 할 수있다. 그렇게하면 원래의 문제를 해결하기 위해 아무 것도 할 수 없지만, 빠르고 효율적으로 수행 할 수 있다는 점에서 추악합니다.

pskill -t arcmap.exe

이전에는 그리 자주 보이지 않지만 최근에 보이지 않는 arcmap.exe 프로세스를 일주일에 여러 번 받고 있지만 얼마 동안 발생했습니다. 나는 보통 동시 라이센스를 사용하고 있습니다. 하나 이상의 Arcmap 세션이 활성화되어 있으면 더 자주 발생하는 것 같습니다. 64 비트 Win7에서 Sophos 바이러스 백신을 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.