Skip to main content

I am trying to update fields in a feature class that is attached to a geometric network. The feature class that I am writing to is a point geometry that is attached in the network to one end of a line.

 

The error message is this: Error while updating feature in the table/feature class 'SDE.wServiceConnection'. The error number from ArcObjects is: '-2147217384'. The error message from ArcObjects is: {}

I found a possible definition of the error online: (-2147217384) FDO_E_INVALID_CONNECTION_POINT_GEOMETRY

The geometry for a complex junction point is invalid.

It appears that the issue is that my workspace errors out when the line length is less that 0.01 foot. I have tested this by finding one that erred out and then lengthening the line and rerunning the workspace with success. While there are only a handful of these in the feature class and they could be manually fixed, this workspace runs as a scheduled task and therein lies the problem. I wouldn't know when it erred out without checking the status daily.

What I would like to do is find a way to ignore the network connection and simply update the field(s) as necessary. I have toggled Simplify Geometry, Reconcile and Post, Validate Features to Write, and Simplify Network Features with no success.

Any help is much appreciated.

@jim I think the only way you'd be able to prevent this error would be to either to remove the problem features (short line segments) or ignore those features when you do the update.

Removing the bad features: probably a little disruptive, but the best solution in the end. Write a workspace to read your network lines, identify the short segments and either merge them with their neighbor (LineCombiner - used to be LineJoiner) or drop them and then snap the neighbor to the end point of the dropped short line segment. Hopefully this would be a onetime effort.

Ignore the features: to do this you'll have to read back the network line features - you might be able to use a WHERE query to limit this to features with a shape_length less than X. Then use PointOnLineOverlayer or SpatialFilter to identify the points that are attached to the short segments and then send those to an error file (i.e. an Excel or CSV writer) for fixing. I think if you can use a WHERE clause to limit the number of segments you read then this shouldn't add too much overhead to your data update.


Reply