6

I work for a telecom company dealing with fiber management.

We have a sister company south of us who we share some fiber and fiber equipment with.

Both of us will be using ArcSDE databases.

We want to be able to share this area with each other, but we don't want to share our entire system. We want to be able to make changes in this area where we share fiber/equipment and sync the changes back and forth, but only for these areas.

Please see this image to have a visual:Image

We only want to sync changes made in the red area.

The problem I'm having with using something such as the two-way replica is that if I save the replica into the database where the data currently exists it doesn't merge with the current data, it creates new data with an _1, like instead of appending to the points feature class it makes a new one called points_1. This is a problem because it also does it for the geometric network which is being used by our fiber management software to track the fiber.

Is there anyway to get the replicated data into our original data and still only be able to sync that data?

I'm not sure if this made sense. It's kind of hard to explain.

5
  • Shameless plug; I am solving this exact problem for another AmigoCloud customer. You can do this with a combination of ESRI Versioning and custom reconciliation code. Commented Aug 7, 2013 at 20:31
  • Can you explain a little further? Where do write this custom reconciliation code?
    – ianbroad
    Commented Aug 8, 2013 at 1:10
  • 1
    Well @BradNesom already has already the right answer :) One thing that may not be obvious is that you need to have versioning enabled to do a two-way replication. Also, you will want to look at GeoDatabase Replication (and not RDBMS replication) if you are looking at geometric networks or network datasets. If the functionality that you get out of the box is not enough, then you have to look a custom reconciliation code. But I wouldn't go there until you know 100% that two-way replication out of the box doesn't do the trick. Commented Aug 8, 2013 at 3:20
  • I'm almost certain 2-way replication won't work. The main reason is how the geometric network is being used with the fiber management extension. In the image I posted above, say the client in Area 1 creates a 2-way replica from their server to an SDE database called 'Shared' on Area 2's server. So when the client in Area 1 makes an edit and syncs it to the the 'Shared' database on the other server, I see no way of getting this new edits from the 'Shared' database into the actual master database on Area 2's server. It'd be cool if you could link the 2 areas based on just the shared location.
    – ianbroad
    Commented Aug 8, 2013 at 4:13
  • 1
    The two way replica in ArcGIS is simply two ArcGIS versions that push the deltas to each other using difference cursors and create the equivalent of a checkpoint using named versions (which I think may be hidden through the API - but most definitely are not hidden by querying the ArcSDE versions table directly). There is nothing that is stopping you from using those same difference cursors (through code) to move the edits from one database to another. This is what I meant by custom reconcile code :) Commented Aug 8, 2013 at 19:31

1 Answer 1

5

It will not be simple to manage but it can be done.

Please note that the network (or objects) will need to be broken at the edge of the boundary or the overlapping objects will be included in both dbs.

A replica is created "from" an mxd document.
So queries, and versions are honored.
You don't describe the database and that will be key to the level of difficulty in the full time management.

You would need to study closely the esri managing replicas help
Also in-depth help is in the managing distributed data help
You need to decide what database will be used in the distributed data. This needs to be decided by the type of workflow you desire.
With file gdbs there is only a one-way distribution allowed.
So each time the edits are made. and accepted back to the parent, a new child must be distributed.

In my opinion this would make your management about a 10 on the order of difficulty.

An rdbms distribution makes this somewhat better but you have to manage schema and any changes very closely, otherwise the replica becomes broken and you have to stop editing (at both ends) to get resolution and restore workflow.

Using RDBMS replicas you can send packets both ways on a scheduled basis and keep each other up to date.

The other option would be a live connection between the two dbs but you only want to do that if you are both inside the same domain.

You mention a vpn but it is not necessary. depending on the amount of edits. You will essentially send just the deltas in a packet file back and forth.
The main gotcha in replicas is the schema changes.
Any change to a field, (name or other), domain (additions), tables dropped or renamed requires a tedious process. (there are tools for it though).
At this point I would get a sign-off from stakeholders that participating features, tables, and database objects will be unchanged in the schema.
Then either create the second rdbms using the parent or verify the schema are in fact the same between two differing dbs.
Then move to test phase and send the initial sync back and forth. (this will be time consuming the first time).
Then make small known changes in both dbs to send in a delta sync and crosscheck each db.
No this is using ONLY esri tools "USING RDBMS replicas" simply means that you can use two-way model sending changes from both dbs. Sorry I didn't read the geometric network line.
you would need to manage dropping and restoring the network before and after sync.

5
  • Both will be ArcSDE databases and in order to connect and sync to each other a VPN will most likely be used.
    – ianbroad
    Commented Aug 5, 2013 at 15:04
  • So you're talking about bypassing ESRI completely? Doing the replication in our SQL Server? I was under the impression that the geometric network could not be replicated using the DBMS replication?
    – ianbroad
    Commented Aug 5, 2013 at 19:14
  • I guess I'm a little confused. In the ESRI link you posted it says there are 2 types of replication. Geodatabase Replication and DBMS Replication. From reading it. It sounds like Geodatabase replication is performed using ESRI tools and DBMS replication is performed using whatever DBMS is used.
    – ianbroad
    Commented Aug 6, 2013 at 13:44
  • DBMS Replication versus Geodatabase Replication ----- The following facts compare geodatabase replication and DBMS replication ----- Geodatabase replication synchronizes changes from specific ArcSDE geodatabase versions. DBMS replication, when used with an ArcSDE geodatabase, applies changes across all versions in the geodatabase. ----- Geodatabase replication supports all advanced geodatabase objects like topologies, relationships, and geometric networks. DBMS replication does not know how to properly replicate advanced geodatabase objects.
    – ianbroad
    Commented Aug 6, 2013 at 13:45
  • my apologies. I don't ever consider rdbms replication with esri databases. I was referring to the difference between replicating file geodatabases (with their very limiting functionality) and enterprise (rdbms) geodatabases. Which provide the functionality described so aptly by GISer. I think also I remembered a time when geometric networks were not supported in distributed database as they are now.
    – Brad Nesom
    Commented Aug 7, 2013 at 16:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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