Tengo problemas para liberar mi gdb en ArcGIS10. Mi herramienta funciona con un gdb local, pero no pude liberarlo después del proceso. En Ag9.3 puedo liberarlo simplemente por Marshal.ReleaseComObject (espacio de trabajo), pero esto no funciona en AG10. Además, liberar todos los cursores de función no ayuda. Solo cerrar toda la aplicación "elimina" el bloqueo. ¿Alguien sabe cómo liberar mi gdb y "eliminar" el bloqueo sin cerrar la aplicación?
arcgis-10.0
arcobjects
AnnemieK
fuente
fuente
Respuestas:
Eché un vistazo rápido y encontré información sobre el escenario de bloqueo que parece estar teniendo. En ArcObjects 10 hay una opción SetWriteLock y FreeWriteLock.
eche un vistazo al enlace del foro específicamente la muestra de Lance Shipman de Esri http://forums.arcgis.com/threads/36881-the-performance-fgdb-api-amp-arcobjects
Diviértete, CDB
fuente
Llegar a esta condición es fácil: todo lo que necesita es un objeto que contenga una referencia a algo que necesita el espacio de trabajo para mantenerse con vida. Como un objeto personalizado que contiene una característica, por ejemplo.
Una vez que esté seguro de no tener tales referencias, intente llamar a GC.collect () para forzar al recolector de basura a un modo de limpieza cuasi-determinista
fuente
Si está utilizando cursores en su aplicación, asegúrese de utilizar ComReleaser para administrar la vida útil de los cursores y destruirlos cuando haya terminado con ellos. De lo contrario, pueden bloquear su DBMS. Podría estar equivocado, pero no creo que llamar a ReleaseComObject solo en el espacio de trabajo elimine la referencia a los cursores. Echa un vistazo a esta publicación de blog de ESRI ...
http://blogs.esri.com/Dev/blogs/geodatabase/archive/2008/12/18/Using-the-ComReleaser-to-manage-the-lifetime-of-cursors-in-.NET.aspx
fuente
Idea encontrada de http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//003n0000007w000000
"Estos archivos .lock se eliminan cada vez que ejecuta la herramienta compacta de geoprocesamiento"
fuente