This section explains the following eSync topics.
You administer eSync through Ektron’s Workarea > Settings > Configuration > Synchronization screens. The screens let you establish a sync configuration between 2 databases, then specify any number of sync profiles for each configuration.
Each profile lets you specify data to sync, a direction, and a schedule. You can always sync immediately by clicking Sync () .
You create profiles to sync these kinds of data.
See Also: Setting up eSync Profiles
Individual file types can be included or excluded from the sync. In addition, you can sync Ektron content or folders. See Also: Content and Folder Sync Options
Several eSync configurations are shown below. You can synchronize any server to or from any other server with one important exception: you cannot initiate a sync from a server outside the firewall. You can only initiate a sync from a server inside the firewall and copy to a server outside the firewall. This is because the outside server does not know the address of servers inside the firewall. However, you can use a staging server to push and pull updated information to and from a production server.
IMPORTANT: All eSync transmissions use port 8732. This is not configurable.
This is the most basic eSync configuration, showing one staging and one production server. Each server has a database and one site.
The eSync feature can automatically create a production server from your staging server. See Also: Using eSync to Initialize a New Site
For installation instructions for this configuration, see Scenario 2: Synching a Local Server with a Remote Server.
This configuration includes a development server. Developers can use it to create new features and modify existing ones. When they are done, they can sync the changes to the staging server, where the changes can be verified before being moved to production.Configuration 2a: Multi-site Staging and Production Servers
For installation instructions for this configuration, see Scenario 3: Setting up a Development > Staging > Production Environment.
In this configuration supported by eSync, the production site has 2 servers: one for site files, and another for the database.
To synchronize these servers, set up several eSync profiles. One syncs the database, assets, and templates to the production database server. Use additional profiles to sync the staging server’s Workarea files with the production site server.
NOTE: When using separate site and database servers, assets are stored on the site server.
In this configuration, each production server has its own database plus the site files. As an alternative, you could have a separate server for each production database, with all sites on one production server.
NOTE: The above configuration also supports separate site and database servers.
To synchronize this type of configuration, set up several eSync profiles, one for each site.
Every server in a sync configuration is assigned a unique number. The originating server is numbered 1, the first server with which it establishes a relationship is numbered 2, and so on.
The server number is in the serverinfo.xml file, located in the c:\sync\inetpub\wwwroot\siteroot
folder, as shown below.
<SyncServerInfoList>
<SyncServerInfo IsSyncRunning="true" MaxId="2" ServerNumber="1" IsMulti-SiteStaged="false">
<ServerId>b0cccb5a-1d45-4262-8857-79f1333696dc</ServerId>
<ServerUrl>http://localhost:8732/Ektron.Sync.Communication/
SyncCommunicationScheduleService.svc</ServerUrl>
<ConnectionInfo>server=WS10080\SQLExpress;database=CMS400Developer;
Integrated Security=TRUE;user=;pwd=;
</ConnectionInfo>
</SyncServerInfo>
</SyncServerInfoList>
All Ektron data is assigned a unique ID number to distinguish it from similar objects. Examples are content (see illustration below), folders, menus, users, and so on.
When you create a sync relationship, Ektron applies to each server a new ID numbering range to ensure that, from then on, objects created on either server have a unique ID. This prevents collisions when synching between servers. For example, since membership users created on a production server have a different ID number range from those created on the staging server, eSync does not overwrite them.
To view a server’s ID number range, open its serverinfo.xml file, located in the c:\sync\inetpub\wwwroot\siteroot
folder, and check the MaxId value as shown in the following example.
<SyncServerInfoList>
<SyncServerInfo IsSyncRunning="true" MaxId="1" ServerNumber="1" IsMulti-SiteStaged="false">
<ServerId>b0cccb5a-1d45-4262-8857-79f1333696dc</ServerId>
<ServerUrl>http://localhost:8732/Ektron.Sync.Communication/
SyncCommunicationScheduleService.svc</ServerUrl>
<ConnectionInfo>server=WS10080\SQLExpress;database=CMS400Developer;
Integrated Security=TRUE;user=;pwd=;
</ConnectionInfo>
</SyncServerInfo>
</SyncServerInfoList>
Multiply that number by 1 trillion to get the largest ID number which that server can assign. So for example, if MaxId
= 3, possible ID numbers range from 2,000,000,000,001 to 3,000,000,000,000.
eSync only copies data that changed since the last sync. So, for example, if your site has 100 menus but only 3 changed since the last sync, it only copies 3. As a result, eSync is very quick.
To track changes to Ektron data between syncs, eSync sets up a c:\sync
folder structure that mirrors your site’s Windows folder structure. This structure is created on each server when sync relationships are established.
No Ektron files reside in the \sync
folders. Instead, each folder has four .sync files that monitor changes to the Ektron files in the corresponding folder.
Ektron’s eSync feature uses security certificates to ensure secure communication between servers. All servers in an eSync configuration must have matching, encrypted security certificates to establish an eSync relationship.
NOTE: If your configuration includes separate database servers, you do not need to install security certificates on them. You only need to install certificates on servers that host Ektron.
See Also: Create eSync Security Certificates for a Load Balanced Cluster
Before you can establish an eSync relationship between servers, each server must have its own (local) security certificate and one from every other server in the configuration.
As another example, if an eSync configuration consists of five servers, each server requires five security certificates: one local and four remote.
Each server creates 2 sets of certificates: a server and a client set. Then, you copy certificates to the other servers in the configuration. The local machine’s server certificate must match a client certificate on the remote server, and vice versa.
You typically only copy certificates when establishing an eSync relationship between servers. After that, any eSync activity triggers a background check, and you can only proceed if certificates match.
Each certificate consists of the following files.
The security certificates can apply to one site or all sites on a server. You determine this when installing them.
See Also: Installing Security Certificates
Prerequisite: Permission to copy and paste files between local and remote servers
To create and place eSync security certificates in the correct locations:
NOTE: You can access this screen at any time screen by opening Windows Start Button > All programs > Ektron > CMS400 v8x > Utilities > Security Configurator> right click and choose Run as Administrator.
NOTE: Only click Generate once. The status field at the bottom of the screen updates as it progresses. If you click OK more than once, you delay the certificates’ creation.
IMPORTANT: Do not place it under the Web root folder, for example C:\inetpub\wwwroot.
C:\ProgramFiles\Ektron\CMS400V8x\Utilities\Software\SecurityConfigurator
.NOTE: These files were created when you completed the eSync Security Configurator Screen in Step 1.
After the local server’s security certificates are copied to the remote server, you need to register and move them to the correct folders. The Security Configurator screen does this.
Follow these steps to regenerate security certificates. You may need to do this if they stop working, or you are concerned about a security breach.
When trying to connect to a remote server, after selecting a security certificate, you may see the following message.
Here are some steps to resolve the problem.
Use Certificate Manager to view security certificates installed on your server. Check marks indicate the certificates. You can also delete all certificates for a server.
NOTE: You can only remove certificates from servers in your eSync configuration. You cannot remove them from the server you are currently logged into.
To view and delete certificates:
Typically, before you begin using eSync, one server hosts an Ektron Web site, and you want to bring other servers into the configuration. After the servers are synchronized, one will be the staging server (the one on which content is created or updated, then approved). Another server, production, hosts your live Web site.
IMPORTANT: The names of the site and all folders must match on both servers. This is because paths to images, XSLT files, and so on, refer to a site and its folders. If the servers’ site and folder names do not match, the links break.
First, use eSync to initialize new servers from the existing one. This process is described in Setting Up eSync. Afterwards, use eSync to periodically sync updated content, folders, users, menus, and so on.
To minimize data entry, eSync saves an individual eSync job's specifications in a profile. So, after you enter specifications once, select the profile whenever you want to sync using the same details. A profile contains information about the
Use the Add Synchronization Profile screen to manage eSync profiles.
While Setting Up eSync, you created a default database and a template profile. This section explains how to modify those profiles and create new ones.
To sync a Web site, you need at least 2 profiles: one for the siteroot/Workarea
folder, and another for all other site files. To create a profile for
Workarea
folder, click Workarea Files under Items to SynchronizeThe following table explains which files are synched by each category.
NOTE: You can also set up a profile to sync Windows folders. See Also: Synchronizing Windows Files
Items to Synchronize |
Type of data synched |
Exceptions |
Database/Resources See Also: Setting up a Profile to Sync a Database and Assets |
All database tables plus the following site root folders
If you check a scope, only those tables are included. |
|
Workarea |
All files in the site’s |
Files in these folders:
See Also: Global File Type Exceptions |
Template See Also: Setting up a Profile to Sync Template and Bin Files WARNING! If you run a template sync and Bin is checked, and one server is running is 32-bit mode while the other is running in 64-bit mode, users will not be able to drag and drop DMS files on the staging server. |
All files in site root folder other than the exceptions |
Files in these folders:
These files:
See Also: Global File Type Exceptions |
NOTE: If you perform an initial sync of a recently-installed min site with your staging site, the min site’s templates could overwrite templates on your staging site. This is because, when 2 templates have the same name, the most recently-modified one overwrites the other. |
||
Bin |
The bin folder, including DLLs and assemblies |
|
You can use these filters to sync specific database tables.
Database scope filter | Includes these tables |
---|---|
CMS Core | Essential tables for Ektron; includes Targeted Content rules |
History | History—check this option if you want a content item's history transferred with it. This enables users on the destination server to track when and by whom content was changed, published, and so on. |
Workflow (eCommerce) | eCommerce history of events |
Search |
Tables to support the following search functionality: |
ASP.NET | Microsoft .Net ASP provider |
Custom | Custom tables (if defined) See Also: Synching Custom Database Tables |
Notification | Notification activities See Also: Notifications |
Prerequisite: You created a Sync configuration and ran an initial sync. See Also: Setting Up eSync
To set up a profile to sync an Ektron database and its assets:
NOTE: If you are using bidirectional sync and only one version was updated since the last sync, the updated version overwrites the unchanged version.
See Also: Conflict Resolution Policy
NOTE: If you enter a date greater than 28, the sync will not run in a month that does not include that date. For example, if you enter 31, the sync will not run in February, April, June, September, and November.
See Also: Pausing the Sync Schedule
WARNING! Do not schedule more than one sync to begin at the same time.
NOTE: You can sync at any time by accessing a Sync Profile and clicking Sync (). See Also: Running a Sync
Setting up a profile to sync Workarea files is the same as Setting up a Profile to Sync a Database and Assets with the following exceptions:
Use the Include/Exclude files field to include files not normally synched, or exclude files or directories that are synched by default.
For example, .txt files are not normally included in a sync, but you want to copy several on your staging server to the production server. In this case, check Include and enter *.txt into the Files field.
Examples of the Exclude option:
NOTE: By default, eSync ignores .config and .txt files.
You can exclude file types and directories. eSync ignores files that satisfy either criterion.
Setting up a profile to sync Workarea files is the same as Setting up a Profile to Sync a Database and Assets with the following exceptions:
Before running a sync profile, you can view what will be synched. To do this, click Sync Preview.
Ektron recommends this feature to help confirm that tables, assets, private assets, uploaded files, uploaded images and assetlibrary files that you delete, add, or change will be copied between servers as you expect. An additional benefit is that you can predict how long a sync will take, because the preview takes the same amount of time.
The Sync Preview produces Sync Log files.
NOTE: You cannot preview a sync profile that includes only Workarea files.
If a sync profile runs on a schedule, you can temporarily pause it. To do this click the profile's pause/play button.
While paused, the sync will not run. To resume the schedule, click the pause/play button again.
For example, a sync is scheduled to run every hour @ :50: 1:50, 2:50, 3:50, and so on. At 10:30 a.m., you pause the sync profile. So, at 10:50 a.m., the sync does not run. At 12:00 noon, you click the pause/play button again. The next sync will start at 12:50 p.m.
Although most Ektron data is created and updated on the staging server, certain types of data are collected on the production server. This information can be viewed and edited on the staging server. Here are some examples:
When you set up a sync profile for this kind of data (maintained in the database), you typically would choose Bidirectional as the direction. In this case, if a membership user updates his profile on the production server, eSync copies those changes to staging. On the other hand, if your administrator changes that information on staging, the next eSync copies the changes from staging to production.
If changes are made to the same file on both servers since the last sync, your conflict resolution policy determines which data is saved. See Also: Conflict Resolution Policy
NOTE: The first time you run a sync for templates or Workarea files, the sync is bidirectional, regardless of the direction you specify on the Synchronization Direction screen.
If you are using Bidirectional Sync, and the same item changed on both servers since the last sync, eSync must decide which version to keep, and which version to overwrite.
NOTE: If you use bidirectional sync and only one version was updated since the last sync, the updated version overwrites the unchanged version.
Use the Synchronization Profile screen's Conflict Resolution Policy field to determine which version ends up on both servers after synchronization. The choices are:
You can sync individual Windows files. For example, you updated template files and related .css files on the staging server, and want to update the production server without moving everything else.
NOTE: If you create new HTML content and insert a Library image into it, then sync just that content, the image is not inserted into the destination library nor is it searchable from the destination site. To remedy this problem, perform a database/resources sync.
You cannot schedule a Windows file sync—you select files and sync them immediately.
Like the profile sync, a local file replaces a remote one only if the local file was modified more recently.
Prerequisites:
To synchronize Windows files:
You may want to adjust the web.config
and db.config
settings before running a Sync. The following topics explain eSync features that you control via the .config files.
Some Ektron customers prefer a tool other than eSync to sync asset files, for example Robo Copy. To disable eSync's assets sync:
C:\Program Files (x86)\Ektron\EktronWindowsService40
.<add key="disableFileSyncProvider">
element to true.From now on, eSync will not copy assets. Set up your replacement tool to do that.
IMPORTANT: The names of the site and all folders must match on both servers. This is because paths to images, xslt files, and so on, refer to a site and its folders. If the servers’ site and folder names do not match, the links break.
WARNING! You cannot run 2 syncs simultaneously.
You can run eSync on a schedule, or on demand. To sync a profile immediately:
NOTE: If another sync is running, you are notified. You can only begin a new sync when the current one finishes.
NOTE: You can close the window and reopen it at any time by clicking Sync (). If you do, the sync’s current status appears.
IMPORTANT: If you performed a database sync and the site being synched uses URL aliasing, you must go to its
Use the Force Initial Sync button to reinitialize a server that was previously initialized.
Here’s an example of when you would use Force Initial Sync.
To accomplish step 3, use the Force Initial Sync button. The button only appears when all prerequisites are present. See Also: Force Initial Sync Prerequisites
NOTE: The Force Initial Sync procedure ignores the following checks that are normally made prior to synching:
* the destination database is smaller than the source database
* the site has not been previously staged
The Force Initial Sync feature requires these conditions.
web.config
file’s ek_ForceReInit
property is set to true
.The following image illustrates the last 2 conditions.
You can create a backup of the destination server’s database. If you do and problems occur during the sync, the database is automatically restored to its state prior to the backup.
You can specify the backup to occur on the initial sync only, or every time you sync.
The backup file format is [dbname][yyyy][mm][dd][hh][mm][ss][mmm].[product].bak
. For example: cms400min20120216075946765.esync.bak
.
NOTE: No backup is made when you sync a folder or content. See Also: Content and Folder Sync Options
To set up the database backup:
C:\Program Files\Ektron\EktronWindowsService40\dbsync.config
.<DatabaseRuntime name="EktronDbSync" logPath="C:\Program Files\Ektron\EktronWindowsService40\Database\">
device
—Following device
, enter the path to the backup file. You should use C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\
.backupOption—
possible valuesThe line should look similar to this:
<DatabaseRuntime name="EktronDbSync" device="C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\" backupOption="1" logPath="C:\Program Files\Ektron\EktronWindowsService40\Database\">
When this is set up, a backup file is created after the initial sync (if backupOption="1"
) or every sync (if backupOption="2"
).
eSync provides the following logs of sync activity.
The View All Synchronization Configurations screen provides a button that displays a chronological log of all syncs on your server, with the most recent at the top.
You can click the icon in the Status column to view details about any sync.
If the column contains a check mark, the sync was successful.
If the column contains a warning (), the sync failed for some items. If you click the icon, a new screen lists causes for the failure, as shown below. Ektron support can use this log to troubleshoot the problem.
This screen lets you perform the following eSync-related activities.
- Create a new one See Also: Setting Up eSync
- Run the initial sync for one See Also: Using eSync to Initialize a New Site
- View information about
- Delete
- Create
- View and edit
- Sync a profile See Also: Running a Sync
- Delete
To learn more about configurations and profiles, see Easy and Flexible Setup and Usage.
See Also: Using eSync
To verify the accuracy of the data being synchronized, eSync checks for and resolves collisions between the following matching items.
For example, on the staging server, a user creates a folder under the root folder called Marketing
, and a user on the production server does the same.
NOTE: * For folders to match, they must have the same name and folder path.
* Both Ektron and membership users are included.
A collision only occurs if both items were entered since the last synchronization.
Although matching items have different ID numbers, users cannot tell them apart. So, eSync appends a number to the more recently-created item to distinguish it from the other. For example, Marketing
becomes Marketing11329
.
To track such changes, the View All Synchronization Configurations screen has a button () that appears only after a collision is resolved.
The server on which the button appears is explained below.
eSync direction |
Collision resolution information appears on this server |
download |
local |
upload |
remote |
bidirectional | local and remote |
When you click the button, you are asked if you want to check for collisions. If you click Resolve, the following button appears on the toolbar.
Click that button to see the Review Synchronization Collisions screen, showing the original and changed items.
This screen shows resolved collisions.
After noting these changes, you can check the box to the left of each change, then click Mark Reviewed to remove it from the screen. Alternatively, you can click the box in the header row to select all.
The Users tab has an additional button, Mark Reviewed and Email. Use it to remove the user from the screen and send an email to him/her (using the address from the Add/Edit User screen’s E-Mail Address field). The email text is below.
lbl sync collision email subject = Your username has been changed lbl sync collision email body = For security purposes, your username has been changed. Your new username is {0}. You will need to use this new username the next time you login. Thank you.
NOTE: You can change the text in the resource file. To learn about editing it, see Procedure for Translating Workarea Strings.
You can use eSync to synchronize custom SQL database tables. To do this, create the custom table on all servers. eSync does not create the tables, but will follow rules for populating records in them.
IMPORTANT: Table names are case sensitive. Names must be identical on all servers.
To add an empty custom table to your database on the source and destination servers, run the following SQL Query on the database. The table must have a primary key and cannot use identity columns. Here is an example of a valid table.
Create table foo3(Id int not null primary key clustered, Id2 int not null, company nvarchar(50) null)
Here are examples of invalid tables, which incorrectly use identity columns.
create table foo1(Id int not null identity(1,1) primary key clustered, company nvarchar(50) null) create table foo2(Id int not null primary key clustered,Id2 bigint not null identity(1,1), company nvarchar(50) null
Prerequisite: The Manage Custom Table Configuration button () appears only if your database has custom tables
To add your custom tables to the eSync configuration, follow these steps on the source server.
Click Manage Custom Table Configuration (). The Manage Custom Table Configurations screen appears.
After you add a custom table, your eSync profile displays a new Database/Resource scope for Custom Tables. Select it to include custom tables in your eSync. See Also: Database Scope Filters
As another example, if an eSync configuration consists of 5 servers, each server requires 5 security certificates: 1 local and 4 remote.
The security certificates can apply to 1 site or all sites on a server. You determine this when installing them.
This section explains how to sync content and folders using context menu options.
See Also: eSync Requirements
To set up the content and folder Synchronize options:
web.config
file.<eSyncSettings> <!-- Set this key to true to enable content/folder sync if the eSync feature is available --> <add key="eSyncEnabled" value="false"/> </eSyncSettings>
eSyncEnabled
to true
.To sync folders or content:
eSync is available if you see Synchronize menu options on Approved content or a folder.
Content sync copies selected content to another server. The sync also copies library resources within that content, such as images and quicklinks.
NOTE: When you sync one content item, all physical files (DMS assets and library files) in the content’s folder are also synched.
Only Approved content can be synchronized. See Also: Prerequisites for Content/Folder Sync
To sync a content item:Setting up eSync Profiles
NOTE: A Synchronize button (shown below) is also available on the View Content screen.
The folder sync updates all content in a folder with the same folder in another server. It does not affect content in folders underneath the selected folder. See Also: Prerequisites for Content/Folder Sync
To sync a folder:
See Also: