ThinkGeo.com    |     Documentation    |     Premium Support

Multiple users editing shape files

I need some help, for some background on the issue:


    We store our shape files from the World Map Kit in a shared location for each client.  We allow the users to modify the shape files, either by editing road names or adding new roads or even deleting roads if they chose.  


The issue we are getting is if multiple people open the map, no one is able to make changes to the shapefile since the file is open on another machine and we get an error saying the file is in use by another process.  I liken this to an excel file on a shared drive, multiple people can access the file, but only 1 is able to make changes.  In my case that isn't acceptable to our clients and we would like options available to us.  Here are a few we have discussed:


1.  Copy the road shape files to the local machine to perform edits.  The issue with this is we would then need a way to merge those changes back to the shared location.  Is there a way to merge 2 shapefiles?


2.  Close the road files once loaded into cache and reopen when needing to read again.  Not a fan of this option as it seems to be micromanaging files and there is still the chance someone tries to write to the file when someone else is reading the file.


Are there any other suggestions for allowing editing of a shared file by multiple users?  


Note, with the copy file locally we would make it a user initiated merge, much like a save option so the user 



Jake,


Thanks for your post and questions.


I agree with you it would be nice to use the first solution if we have to stick to use the shape file in disk. Other solutions I can think out are as following:

1) Transfer the shape files data from disk to SQL Server, and use the MsSql2008FeatureLayer instead of ShapeFileFeatureLayer.

2) Create a WMS-server alike web-service system while editing service is integrated.


OK, let us go back and discuss a bit about the firs solution. I think now we are following the .net File read & Write mode.

1)Multiple Read-Onlys can be allowed.

2)If one user open the file in ReadWrite mode, then the exception will be happening when other users try to open it before the user close the file.


So, I agree with you that we need to copy the files from shared server to local disk or some other write-permission location and then open the copied files in read-write mode. After the user do some editing stuff, we may need to merge back to original shape file. Following are the steps for merging:

1) Close all the layers(including ReadOnlys or ReadWrite) for the original shape file.

2) Open the shape file in ReadWrite mode.

3) Select out those changed features. This is the most important step. When the user commit transaction, I suggest we record the IDs been edited by the users. If not, we have to loop each feature for comparison and find out those changed ones which are probably time-consuming.

4) Update the features found out in Step4.

5) Commit transaction and watch the transaction result.


Any more questions just feel free to let me know.


Thanks.


Yale