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.1SP3 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.
where Column1 = X and Column2 = Y
For example: If this is the query you see repeating:
declare @p8 int
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
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.
- Stop the Ektron Windows Service
- Run the follow SQL on the receiving database:
set sync_row_is_tombstone = 1
where Column1 = X and Column2 = Y (See Below for example)
- Start the Ektron Windows Service
- Repeat the query with new IDs if you see new rows repeating.
- Once the immediate issue is resolved upgrade to the latest version to prevent future occurrences.
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