En raras ocasiones, ArcCatalog deja una transacción en ejecución sin que ocurra actividad SQL. Estoy buscando a alguien más que haya notado este problema y, si tengo mucha suerte, que tenga una solución.<\/P>
<\/P>
Parece estar asociado (aún no confirmado al 100%) con el cambio entre conexiones de base de datos en la vista de árbol de ArcCatalog.<\/P>
El entorno es ArcGIS 10.5.1 ejecutándose sobre un backend SQL Server<\/P>
Como se discute en http:\/\/desktop.arcgis.com\/en\/arcmap\/latest\/manage-data\/geodatabases\/concurrency-and-locking.htm <\/A>10.4, las geodatabases en SQL Server deben tener las opciones de base de datos READ_COMMITTED_SNAPSHOT y ALLOW_SNAPSHOT_ISOLATION configuradas en ON, y ArcGIS utiliza el nivel de aislamiento READ COMMITTED para las transacciones7<\/EM><\/P><\/P>Desde la perspectiva de SQL, esto hace que el historial de una transacción se mantenga en TEMPDB hasta que la transacción finalice.<\/P><\/P>Si una transacción permanece abierta, el espacio en TEMPDB no se libera. Además, cualquier información de transacción TEMPDB para otras transacciones en toda la instancia SQL se retendrá hasta que la transacción larga original termine (esto no es 100% cierto, pero es suficiente detalle para explicar el problema).<\/P><\/P>Por lo tanto, es importante que las transacciones de ArcGIS no se ejecuten por períodos prolongados (como horas).<\/P><\/P>Estamos viendo la situación en la que, en raras ocasiones, un usuario de ArcCatalog tiene una transacción activa durante horas cuando, desde su perspectiva, solo está mirando la vista de árbol de conexiones a bases de datos. Cuando vamos a la PC del cliente vemos una pantalla de ArcCatalog como esta...<\/P><\/P>Si luego hacemos clic derecho sobre SDIDIV_SQLP2_PRD2.sde y soltamos el clic derecho el problema se resuelve.<\/P><\/P>En un rastreo SQL (iniciado justo antes del clic derecho) vemos una serie de consultas SQL, seguidas por un COMMIT de una transacción con hora de inicio 01\/-08\/-2018 10:51 y hora final 01\/-08\/-2018 14:37 (¡casi 4 horas!)<\/P><\/P>Mi conclusión es que ArcCatalog ha olvidado hacer commit de algún procesamiento a las 10:51 (probablemente el usuario cambiando entre conexiones a bases de datos). Mi DeLorean está en servicio ahora mismo así que no puedo mostrarles el rastreo alrededor de las 10:51.<\/P><\/P>La conclusión más simple (desde mi perspectiva) es pedir a ESRI que identifique su error de codificación y lo corrija, pero creo que, sin documentación adicional, eso sería un poco irrealista.<\/P><\/P>Una segunda opción es hacer que el usuario recree el problema y realizar un rastreo mientras lo hace (esto hasta ahora ha sido infructuoso).<\/P><\/P>Dado que no podemos identificar la causa raíz, la siguiente opción es mitigar la situación.<\/P> ¿Podemos establecer un tiempo límite para una transacción?<\/P> ¿Podemos establecer un tiempo límite inactivo para una transacción?<\/P><\/P>El problema parece estar aislado a un solo usuario. Su perfil de uso es tal que a menudo cambia entre conexiones a bases de datos, mientras que un usuario normal elige una conexión a base de datos y se mantiene con ella por períodos prolongados.<\/P><\/P>Cualquier comentario será bienvenido<\/P><\/BODY><\/HTML>
Sharing with Geodatabase
Further clarification..
In the above description, when I am talking about 'live/open transactions' I am referring to SQL transactions, not ESRI transactions/lock tables etc
I have progressed this investigation further and I am now in a position that I can recreate the problem (or at least a manifestation of the problem) 100% of the time.
In ArcCatalog (with SQL 2016 FP2 backend)
We are raising an issue with ESRI but any confirmation that you too can create the problem (or not) would be appreciated
Los miembros registrados pueden publicar, seguir actualizaciones y más. ¿Nuevo aquí? Regístrate gratis.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.