Proses ArcMap.exe tetap terbuka setelah menutup ArcMap? [Tutup]

23

Saya menyadari bahwa ini terjadi beberapa bulan yang lalu ketika saya tidak dapat mengubah struktur tabel dalam instance ArcMap setelah instance lain ditutup. Ketika, misalnya, saya menghapus atau menambahkan beberapa bidang ke kelas fitur di ArcMap, simpan dan tutup dokumen dan buka ArcCatalog dan mencoba untuk menghapus Kelas Fitur tertentu yang saya dapatkan Hapus Gagal: Gagal menghapus kesalahan objek yang dipilih. Ini biasanya terjadi ketika instance ArcMap yang berisi lapisan yang saya coba hapus dibuka sehingga solusinya adalah menjalankan Windows Task Manager dan membunuh proses ArcMap.exe yang karena alasan tertentu masih dibuka.

Adakah yang mengalami masalah ini?

Sekarang menjalankan SP3 dan masalah belum terpecahkan.

masukkan deskripsi gambar di sini


Saya menjalankan pengaturan yang sangat mirip pada mesin yang sebanding dan saya tidak memiliki masalah ini di sana.

Jakub Sisak GeoGraphics
sumber
4
IYA NIH! Silakan lihat posting forum saya di forum ESRI. Saya mencoba mereproduksi (sepertinya acak ...) untuk mendapatkan tiket dibuka dengan ESRI.
SaultDon
Apakah Anda memiliki ekstensi pihak ke-3 yang dimuat? Saya ingin tahu apakah pengecualian dalam IExtension. Shutdown mungkin menjelaskan hal ini.
Kirk Kuykendall
@kirk Saya tidak memilikinya dan tidak pernah menginstal apapun pada instalasi v10 ini. Ini bahkan merupakan instalasi baru windows7. Mirip dengan Anda, ini sudah ada sejak sebelum SP1.
SaultDon
2
Anda menjalankan hampir 100 proses, bisa jadi apa saja, tapi saya paling curiga terhadap pemindai virus, perangkat lunak cadangan, dan layanan pengindeksan pencarian.
blah238
@Kirk - tidak ada ekstensi pada pengaturan khusus ini tetapi saya akan mengecek ketika saya mulai bekerja. Saya memiliki beberapa alat tambahan saya sendiri. Saya memiliki pengaturan serupa pada mesin Windows 7 lain dengan add-on yang sama dan tidak ada masalah di sana.
Jakub Sisak GeoGraphics

Jawaban:

18

Bukan salah Anda dan tidak banyak yang bisa Anda lakukan. Namun, jika Anda ingin tahu tentang alasannya, apa yang terjadi adalah bahwa ada referensi melingkar COM (kemungkinan besar untuk mendengarkan sesuatu sumber acara - seperti Editor) dan ketika aplikasi mencoba untuk keluar tidak bisa, karena beberapa benda tetap satu sama lain hidup. Ini bisa dari ekstensi yang telah Anda instal, atau bahkan dari dalam kode ESRI itu sendiri. Ini digunakan untuk terjadi sepanjang waktu dan hanya dapat memanifestasikan dirinya dalam kondisi tertentu, seperti perintah tertentu yang terlihat di toolbar.

Dari tutorial ArcObjects lama tentang konsep COM :

Ketika aplikasi keluar, ia melepaskan referensi yang dipegangnya pada perintah. Jika perintah juga berfungsi sebagai peristiwa tenggelam, aplikasi memegang referensi lain untuk perintah, yang tidak dapat dilepaskan sampai perintah terputus dari sumber. Karena perintah tidak mengetahui titik di mana ia dapat memutuskan selain dari destruktornya sendiri, ini menyebabkan referensi melingkar di mana aplikasi tidak dapat keluar tanpa perintah menghancurkan dan perintah destruktor tidak pernah dipanggil karena aplikasi memegang referensi ke perintah . Ini menyebabkan aplikasi hang on exit.

Jika Anda bahkan lebih penasaran, hapus (atau cadangan) Normal.mxt Anda, yang akan menghapus semua penyesuaian dan melihat apakah masalah ini berlanjut.

Ragi Yaser Burhum
sumber
3
+1 penjelasan yang bagus. Membuat saya bertanya-tanya apakah menutup semua bilah perintah kecuali satu, lalu simpan dan keluar dan coba untuk mereproduksi masalah. Saya tidak berpikir ICommand.OnCreate dipanggil sampai bilah alat terlihat. Jika Anda secara bertahap mengaktifkan toolbar dan mengulangi tes mungkin Anda bisa mempersempit daftar perintah yang dicurigai.
Kirk Kuykendall
Penjelasan yang bagus. Terima kasih. @Kirk - Saya punya alat pihak ke-3 yang saya lupa (ArcBruTile) saya akan menghapusnya. Add-in saya memang melakukan beberapa acara mendengarkan jadi saya bertanya-tanya toolbar saya bisa menjadi sumber masalah. Yang aneh adalah bahwa saya memiliki alat yang sama pada mesin saya yang lain serta set yang sama dengan toolbar standar yang dimuat dan saya tidak memiliki masalah ini di sana. Saya akan mencoba memulai dengan Normal.mxt yang baru, itu saran yang bagus.
Jakub Sisak GeoGraphics
Juga, kadang-kadang ketika tindakan hanya terlihat mungkin tidak cukup untuk menyebabkan referensi melingkar - mungkin memerlukan beberapa peristiwa terjadi untuk kondisi itu untuk memanifestasikan dirinya. Sebagai contoh, perintah dapat terlihat dan semuanya baik-baik saja dan keren menunggu acara "StartEditing" terjadi. Setelah itu memicu, ia memutuskan untuk mulai mengambil referensi ke hal-hal lain - dan di sana ia menetapkan referensi lain yang memang menyebabkan kondisi melingkar. Ini adalah masalah klasik dengan ekstensi VB dan bahkan lebih banyak lagi dengan perintah .NET karena pengumpulan sampah yang non-deterministik
Ragi Yaser Burhum
2

Terima kasih @Kirk dan @Ragi untuk menyelesaikan masalah ini! Inilah yang telah saya lakukan saat memantau Proses Task Manager:

  1. Dicadangkan dan dihapus Normal.mxt
  2. Memulai Dokumen ArcMap baru (ArcMap dibuka dalam konfigurasi default)
  3. ArcMap Tertutup (Proses ditutup seperti yang diharapkan)
  4. Ditambahkan Toobars: Analis 3D, Pengeditan Tingkat Lanjut, Alat Bingkai Data, Gambar, Edit Verteks, Editor, Georeferensi, Pelabelan, Tata Letak, Memotret
  5. Bilah alat yang diatur
  6. ArcMap Tertutup (Proses ditutup seperti yang diharapkan)
  7. Mulai Dokumen ArcMap baru
  8. Menambahkan toolbar kustom saya sendiri dengan add-in
  9. ArcMap Tertutup (Proses ditutup seperti yang diharapkan)
  10. Memulai Dokumen ArcMap yang ada
  11. Mulai kustom yang digunakan dan berhenti mengedit pada toolbar saya serta beberapa alat kustom
  12. ArcMap Tertutup (Proses ditutup seperti yang diharapkan)

Saya juga menghapus dan menghapus ArcBruTile

Proses ArcMap sekarang dekat seperti yang diharapkan

Jakub Sisak GeoGraphics
sumber
2
berbicara terlalu cepat. Masalahnya kembali.
Jakub Sisak GeoGraphics
Sayangnya, dukungan ESRI telah menyalin dan menempelkan jawaban di atas sebagai solusi, ketika tampaknya tidak berfungsi: /
MaryBeth
@ Jakub Apakah Anda pernah menemukan solusi untuk masalah ini? Saya membuat addin dan baru-baru ini melihat beberapa proses ArcMap berjalan setelah keluar.
Barbarossa
Tampaknya konsensusnya adalah bahwa proses dibuka dan tidak ditutup dengan benar oleh addins / ekstensi pihak ketiga. Saya membangun addins saya sendiri dan saya mungkin baru saja melewati semua kode saya memastikan semua objek dilepaskan atau, dan lebih mungkin, masalah telah diperbaiki pada sumbernya oleh ESRI karena tidak lagi terjadi di 10.3 dan saya percaya sudah menghilang di 10.2. Jika ini masih terjadi, copot dan atau hapus SEMUA addins pihak ke-3 dan lihat apakah masalahnya masih ada. Jika tidak terus berputar, tambahkan satu per satu untuk menemukan penyebabnya. Semoga ini membantu.
Jakub Sisak GeoGraphics
2

Tidak mencoba mengembalikan pos ini dari kematian, tetapi saat bekerja dengan dukungan ESRI pada masalah ini dengan server Citrix (pengguna mogok atau keluar, arcgiscachemanager.exe tidak menutup 20-30 menit kemudian atau lebih jika sama sekali, pengguna tidak dapat kembali ke ArcMap dan kemudian mereka harus bergantung pada 2 administrator server agar dapat masuk ke server dan melepaskannya secara manual), ESRI menyalin dan menempelkan solusi dari halaman ini dan itu tidak berfungsi. Setidaknya tidak ketika bekerja di lingkungan Citrix.

Untuk Citrix, kami menemukan bahwa membuat dua kunci registri (satu untuk membunuh proses yang digantung, satu untuk mendorong pengaturan kembali ke keadaan semula) "memperbaiki" masalah tersebut.

Untuk non-Citrix, kami bermain-main dengan gagasan hanya membuat skrip untuk menghentikan proses, tetapi karena ketika kita tidak di Citrix, kita sudah di server, kami memutuskan itu tidak perlu.

Semoga ini membantu.

------- menyalin data dari tiket dukungan yang ditingkatkan -------- Citrix memiliki pengaturan kunci registri yang akan membantu mengelola aplikasi yang menelurkan proses sekunder di latar belakang. Anda memiliki banyak gejala yang seharusnya menjadikan solusi ini pengaturan yang masuk akal. Lihat Artikel Pengetahuan Citrix berikut ini:

Logoff Anggun dari Aplikasi yang Diterbitkan Menjadikan Sesi dalam Status Aktif: http://support.citrix.com/article/CTX891671

Sesi Aktif setelah Pengguna Keluar di Lingkungan XenApp ketika Ditingkatkan dari Windows Server 2003 ke Windows Server 2008: http://support.citrix.com/article/CTX134956

XenApp 6.5 AppCenter Console Menampilkan Status Aplikasi Aplikasi Tidak Berjalan: http://support.citrix.com/article/CTX133328

Dalam artikel ini, dibahas bagaimana aplikasi yang diterbitkan dapat menyebabkan sesi tidak ditutup atau pengguna tidak logout dengan benar. Dalam kasus tersebut, sesi harus diatur ulang / keluar oleh admin atau dengan menghentikan proses dari server yang masih berjalan. Apa yang terjadi di Citrix adalah Anda menerbitkan aplikasi utama, dalam kasus Anda ArcMap. Hanya exe yang ditutup saat keluar dari aplikasi (atau jika crash). Akibatnya, setiap exe yang terkait dengan aplikasi yang muncul ketika aplikasi dibuka tidak sepenuhnya ditutup di Citrix yang mengakibatkan keadaan ini. Jadi ketika ArcGISCacheMgr.exe membutuhkan waktu lama untuk dijalankan atau aplikasi mogok, pengguna akhir Anda tidak dapat memulai sesi baru.

Artikel membahas bagaimana Anda dapat menambahkan proses sekunder ini ke kunci registri untuk menutupnya secara otomatis pada penutupan aplikasi utama. Opsi lain yang dapat Anda jelajahi adalah skrip logoff untuk memeriksa proses dan menghentikannya jika ada.

MaryBeth
sumber
2

Buat file .bat dan tempel ini di dan simpan ke desktop.

 taskkill /IM ArcGisCacheMgr.exe /f
 taskkill /IM ArcGisConnection.exe /f
 "C:\Program Files (x86)\ArcGIS\Desktop10.1\bin\ArcMap.exe"
shane
sumber
4
Penjelasan tentang apa yang dilakukan perintah-perintah ini (dan opsi-opsi mereka) akan membantu orang yang belum tahu memahami solusi Anda.
whuber
1

PsKill dari SysInternals Suite (sangat mirip dengan toolkit wajib menurut saya) dapat dihubungkan dengan jalan pintas dan menembakkan keinginan untuk membersihkan proses yang digantung. Melakukannya jelek karena tidak melakukan apa pun untuk menyelesaikan masalah aslinya, tetapi hal itu memungkinkan seseorang untuk melanjutkan dengan cepat dan efisien.

pskill -t arcmap.exe

Saya telah mendapatkan proses arcmap.exe yang tidak terlihat beberapa kali seminggu belakangan ini, tidak terlalu sering sebelumnya, tetapi telah terjadi selama beberapa waktu. Saya biasanya menggunakan lisensi bersamaan. Tampaknya terjadi lebih sering ketika saya memiliki lebih dari satu sesi Arcmap aktif. Kami menggunakan antivirus Sophos, pada Win7 64bit.

matt wilkie
sumber