The eSync Profile is Stuck at 50 percent

  • Updated

The eSync status window indicates the profile database phase reached 50 percent but there has been no progress since then. The eSync may be hung. 

Ektron 8.6.1 or higher:

Database synchronization consists of two primary phases: enumerating the changes and applying the changes. During enumeration, eSync checks each table for changes for that particular destination. As that phase nears completion, the status changes to 50 percent complete. Depending on the number of changes, batches of changes may also be created. When the batch creation is complete, the changes are transferred to the destination.

If eSync appears to hang at this point (50 percent), you may alleviate the issue with the following steps.

Important! Before running any script on the database, ensure you have current backup copies.

1. Stop the Ektron Windows Service 4.0 on the source and destination servers.

2. Delete any subfolders in the C:\Program Files (x86)\Ektron\EktronWindowsService40\database folder on each server.

3. Run the following SQL script on each CMS database:

UPDATE sync_settings SET application_tran_size=16384, memory_data_cache_size=16384

4. Start the Ektron Windows Service 4.0 on each server.

5. Start the eSync profile.


If Sync Still Does Not Complete it is most likely due to this issue.
23725—Syncs would not complete if a widget was removed from a page and subsequently re-added to that page. (Fixed in 9.2 or higher)

If this does not resolve the issue, set up SQL Server Profiler for the receiving database.  The SQL Server Profiler will generally show you a query that keeps repeating, and that repeating query is the key to fixing the issue at that point.

  •  SQL profiler should be pointed at the receiving DB of the sync
  • Once you identify the repeating row, identify the table name and IDs that are repeating. Then run the following query on both databases. Note: You will need to replace the values below with the columns and table from the repeating query. Append _tracking to the table name.

    select sync_row_is_tombstone 
    where Column1 = X and Column2 = Y
    from TableName_tracking

For example:  If this is the query you see repeating:

declare @p8 int
set @p8=0
exec sync_page_to_object_bydelete @page_id=2147504405,@page_language=1033,@object_id=2147504407,@object_type=0,@object_language=1033,@sync_min_timestamp=501938,@sync_force_write=1,@sync_row_count=@p8 output
select @p8

The query you would run would be:

select page_id, object_id, sync_row_is_tombstone from page_to_object_tracking where page_id = 2147504405 AND object_id = 2147504407

If sync_row_is_tombstone = 0 on the receiving end and 1 on the sending side that means esync made a deletion attempt on the remote database but it cannot completely carry out the request. To fix it you will need to set sync_row_is_tombstone to 1, see below.

  1. Stop the Ektron Windows Service
  2. Run the follow SQL on the receiving database(note that the first query updates the tracking, the second query deletes the row from the table containing the CMS data): 

    update TableName_tracking 
    set sync_row_is_tombstone = 1
    where Column1 = X and Column2 = Y 

    delete from TableName
    where Column1 = X and Column2 = Y 
    (See below for example)
  3. Start the Ektron Windows Service
  4. Repeat the query with new IDs if you see new rows repeating.
  5. Once the immediate issue is resolved upgrade to the latest version to prevent future occurrences.

An exception to the above is if the repeating query affects user_to_group_tbl, a different query will be needed.

truncate table user_to_group_tbl_Tracking
update user_to_group_tbl set user_id=user_id

As an example for step 2 above, using the same example from the Trace file we used previously, the second query to run would be: 

update page_to_object_tracking 
set sync_row_is_tombstone = 1 
where page_id = 2147504405 and object_id = 2147504407

 delete from page_to_object 
where page_id = 2147504405 and object_id = 2147504407