1

I use a non version SQLServer geodatabse with geometry type for spatial data storing.To do so,I have registered all layers in SDE repository and geodatabase and ArcMap shows all layers and edit them properly.

But to apply some business rules,I have to catch ArcMap editor control in OnCreate even of Editor Object and I have to query database inside this event,so I encounter concurrency&lock problem according to this ESRI's document:

http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#geodatabases/concur-1966151650.htm

even after I changed all my codes (which access geodatabase) into ArcObject model(so I use Editor::Workspace object to retrive data using ICursor and IFeatureCursor) I still receive some errors that show me database is locked while ArcMap editing session,although ESRI says isolation level is UNCOMMITTED READ.If isolation level is uncommitted read,I can at least read data from geodatabase during the time after ArcMap creates a feature and before user commits transaction.But event a simple SELECT query is locked by ArcMap.I wonder if I can't understand right meaning of UNCOMMITTED READ isolation level or there is a problem some where else.

Any suggestion or reference to deal with this problem?

I use ArcGIS Desktop 10.2 for working with data and use ArcSDE 9.3 to create and register geodatabase.

1

First of all,let me apologize if my post had any misleading,maybe it implied that SDE does not apply Uncommitted read for its transaction isolation level.As I found using SQLServer profiler(after a lot of traces),I found even SDE applies "Commited Read" when query to its repository,but using profiler,I didn't find any command issued by SDE related to isolation level when starting edit session.But there was a command in profiler :

"Set transaction isolation level read committed"

not issued by SDE,but .NET SQLServer driver.

After a short search on the net,I found,this is the default setting of .NET SQLServer driver.

Simply I put this command at the first line of "Select" queries in my stored procedures:

"Set transaction isolation level read uncommitted"

and it worked.

Now I can query my geodatabase using a simple stored procedure while I have started an Edit session and even after I finished drawing a sketch without committing save command or undoing it.A really simple solution for "concurrency and lock problem in non version geodatabase" in ArcGIS.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.