3

I trying to develop WebService which main purpose is enable editing data. My Web Service get as param information about records, tables etc. Code looks like below:

IFeatureWorkspace ifw = null;
        IWorkspaceEdit iwep = null;
        try {
            ifw = new IFeatureWorkspaceProxy(new IVersionProxy(currentUserVersion));
            iwep = new IWorkspaceEditProxy(ifw);
            iwep.startEditing(false);
            iwep.startEditOperation();
            performOperation(mergeData, ifw, iwep);
//this method make store on records
        } catch (AutomationException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                iwep.stopEditOperation();
                iwep.stopEditing(true);
 } catch (AutomationException e) {

            } catch (IOException e) {

            }
        }

Everything works fine for one single request, but above code is horrible slow for multirequest for different version. Because different people has own version which is used to editing. I think the most time take startEditOperation and startEditing. Everything starts as capability of MXD file. Anyone can give me a solution how to using soe web services give capablities for editing data which will have a quite good performance?

  • 1
    Esri suggests using Feature Services to provide editing. Why not use that? – Kirk Kuykendall Feb 20 '12 at 18:39
  • You have right. But Feature Service currently cannot work with versions. – yaotzin Feb 20 '12 at 21:39
  • Ok. Maybe someone can explain me, when edit session should be started in SOE Web Services? – yaotzin Feb 27 '12 at 11:46
  • 1
    Are you sure startedit/stopedit is taking most of the time? My experience is that every store you make on a table takes long time. If your users updates many features at the same time you should use an insert cursor. – Stefan Mar 28 '12 at 13:39
  • 1
    How do your users call the SOE? Are there many users? If you have only a few users you could maybe dedicate a context for each user already connected to the right version. That may require using non-pooled contexts that the webservice hogs for a long time. – Stefan Mar 28 '12 at 13:45

Your Answer

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

Browse other questions tagged or ask your own question.