Geodata Service with 2-way Replication

10384
25
02-18-2015 06:35 AM
mpboyle
Occasional Contributor III

I'm trying to setup a geodata service and use it as a means for 2-way geodatabase replication.  I don't have any problem creating the geodata service from a versioned SDE geodatabase.  However, I haven't been able to create a replica geodatabase and I'm not entirely sure why.

My goal is to publish a geodata service from a SDE gdb which other entities can use to create a 2-way replica and we can sync our edits back and forth...so as to have a common dataset for editing.  Unless I'm mistaken, this should be doable...?

I have the following questions about the workflow and was wondering if anyone has experience using a similar approach and could explain their methods?

1) When publishing the geodata service, do you use a versioned connection or a connection to the DEFAULT version?  Are there any permissions needed by the user the service is published from other than being able to edit the dataset?

2) What tool in ArcToolbox do you use to create the replica (Create Replica or Create Replica From Server)?  Or is there an alternate workflow for creating the replica through ArcMap?

3) Are there any necessary permissions within SDE that I'm overlooking?

Environment:

1) SDE = 10.1

2) ArcGIS Server = 10.3

3) RDBMS = SQL Server 2008 R2

Thanks in advance!

25 Replies
JakeSkinner
Esri Esteemed Contributor

Hi Matthew,

This is doable.  To answer your questions:

1.  This is up to you.  If you want the edits replicated to/from a version, you can publish the geodata service when you are connected to the version (through the geodatabase connection properties).  No, there aren't any other permissions the user will need other than edit.

2.  I usually publish the geodata service, and then create the replica using the Distributed Geodatabase toolbar.  I find the GUI a little easier to use.  You will want to specify the geodata service for the geodatabase.

3.  You shouldn't need any special permissions.

What are the errors you are receiving when you try and create the replica?

mpboyle
Occasional Contributor III

Jake Skinner

1) Creating the geodata service is pretty straight forward.

2) This is the step I'm a little confused about.  When you say you usually publish the geodata service and then create the replica using the Distributed Geodatabase toolbar, I assume this means you are in ArcMap?  How can you access the geodata service in ArcMap?...it's not an object that can be added to ArcMap.

0 Kudos
JakeSkinner
Esri Esteemed Contributor

You will want to browse to the Geodata Service under your GIS Servers.  Ex:

screen1.png

mpboyle
Occasional Contributor III

In this scenario you're replicating from sde.DEFAULT...I assume this is the 'parent'?

When you specify the geodata service as the gdb to replicate to, does the geodata service connect to the child gdb?

Can you tell this is something I'm not familiar with?

0 Kudos
JakeSkinner
Esri Esteemed Contributor

In this scenario, you can consider the database I'm replicating from as the 'parent'.  I published the database I want to replicate data to as a Geodata Service. 

For example, I have database A and database B.  I want to replicate data from A to B in a two way replica.  I would publish B as a geodata service, and then create the two way replica by adding the data from A to ArcMap and run through the Create Replica tool on the Distributed Geodatabase using the Geodata Service as the database to replicate to.

Once the replica is complete, I can edit the feature class in either database A or B and sync the changes between the two using the Geodata Service.

mpboyle
Occasional Contributor III

Thank Jake...this makes sense and I've been able to successfully set up a replica using the geodata service pointed at the 'child' gdb (B).

Would I need a second geodata service for the 'child' (B) to push edits / sync back to the 'parent' (A)?

JakeSkinner
Esri Esteemed Contributor

If I'm following you correctly, you have data replicated from (A) to (B).  You can synchronize in both directions between these geodatabases.  You will only need a second geodata service if you want to replicate data from (B) to (A).

0 Kudos
mpboyle
Occasional Contributor III

Got it...you can use the Synchronize Changes tool to sync in both directions.  I'm assuming this would be useful if trying to schedule syncing on a regular basis through a model or script.

I really appreciate your help with this Jake Skinner‌ !

0 Kudos
WilliamWang
Occasional Contributor

Just found your posting and it seems you have no problem with your 2 way replication using 1 replica and 1 Geodata service (GDS). I am curious to know how has the sync been going thus far?

Have been working on the same issue here with our outside entity and we found that we were unable to sync simply using 1 GDS. Any insight is helpful on this matter.

Also, are you replicating as your earlier description going to/from a versioned of your default GDB to your outside entity's versioned of their default GDB? If so, are you Default GDB set to protected on both ends?

Thank you.

0 Kudos