Synchronization Issue
Hi, we had a synchronization that has been stuck at 50% for the past few days. I followed the steps at www.sitefinity.com/.../sitesync-stuck and now the sync will finish but any item that attempts to synchronize times out. On the client, I see:
Telerik.Sitefinity.Pages.Model.PageNode: "Test" Message: GetResponse timed out
("Test" is the name of the page I updated to see if it would sync)
On the destination's error log, I see the event log entry listed below.
Any ideas how to resolve are appreciated.
Event Log (site url edited to "myurl"):
Log Name: Application
Source: ASP.NET 4.0.30319.0
Date: 2/18/2014 10:32:38 PM
Event ID: 1309
Task Category: Web Event
Level: Warning
Keywords: Classic
User: N/A
Computer: vsslvews01.dmz.intra
Description:
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 2/18/2014 10:32:38 PM
Event time (UTC): 2/19/2014 6:32:38 AM
Event ID: 239cd30bb84947bca17189c017a1d065
Event sequence: 1626
Event occurrence: 4
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/6/ROOT-1-130372629056634408
Trust level: Full
Application Virtual Path: /
Application Path: C:\Sites\sitefinity6\
Machine name: VSSLVEWS01
Process information:
Process ID: 3496
Process name: w3wp.exe
Account name: NT AUTHORITY\LOCAL SERVICE
Exception information:
Exception type: DuplicatePageUrlException
Exception message: You cannot save your changes, becase a page with such URL already exists. Change the page URL and try again
at Telerik.Sitefinity.Pages.Model.PageNode.PreStore()
at OpenAccessRuntime.DataObjects.PCStateMan.doJDOPreStore(LifecycleListenerManager[] listeners)
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.callPreStore()
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.prepareForStore(Boolean commit)
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.flushRetainState()
Request information:
Request URL: www.myurl.com/.../
Request path: /Sitefinity/CMIS/RestAtom/D49CD7BE-8639-4F8B-9B08-E99B5B2B7212/children/
User host address: 10.111.204.100
User: SiteSyncUser
Is authenticated: True
Authentication Type:
Thread account name: NT AUTHORITY\LOCAL SERVICE
Thread information:
Thread ID: 26
Thread account name: NT AUTHORITY\LOCAL SERVICE
Is impersonating: False
Stack trace: at Telerik.Sitefinity.Pages.Model.PageNode.PreStore()
at OpenAccessRuntime.DataObjects.PCStateMan.doJDOPreStore(LifecycleListenerManager[] listeners)
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.callPreStore()
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.prepareForStore(Boolean commit)
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.flushRetainState()
Custom event details:
Event Xml:
<Event xmlns="schemas.microsoft.com/.../event">
<System>
<Provider Name="ASP.NET 4.0.30319.0" />
<EventID Qualifiers="32768">1309</EventID>
<Level>3</Level>
<Task>3</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2014-02-19T06:32:38.000000000Z" />
<EventRecordID>71123</EventRecordID>
<Channel>Application</Channel>
<Computer>vsslvews01.dmz.intra</Computer>
<Security />
</System>
<EventData>
<Data>3005</Data>
<Data>An unhandled exception has occurred.</Data>
<Data>2/18/2014 10:32:38 PM</Data>
<Data>2/19/2014 6:32:38 AM</Data>
<Data>239cd30bb84947bca17189c017a1d065</Data>
<Data>1626</Data>
<Data>4</Data>
<Data>0</Data>
<Data>/LM/W3SVC/6/ROOT-1-130372629056634408</Data>
<Data>Full</Data>
<Data>/</Data>
<Data>C:\Sites\sitefinity6\</Data>
<Data>VSSLVEWS01</Data>
<Data>
</Data>
<Data>3496</Data>
<Data>w3wp.exe</Data>
<Data>NT AUTHORITY\LOCAL SERVICE</Data>
<Data>DuplicatePageUrlException</Data>
<Data>You cannot save your changes, becase a page with such URL already exists. Change the page URL and try again
at Telerik.Sitefinity.Pages.Model.PageNode.PreStore()
at OpenAccessRuntime.DataObjects.PCStateMan.doJDOPreStore(LifecycleListenerManager[] listeners)
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.callPreStore()
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.prepareForStore(Boolean commit)
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.flushRetainState()
</Data>
<Data>www.myurl.com/.../Data>
<Data>/Sitefinity/CMIS/RestAtom/D49CD7BE-8639-4F8B-9B08-E99B5B2B7212/children/</Data>
<Data>10.111.204.100</Data>
<Data>SiteSyncUser</Data>
<Data>True</Data>
<Data>
</Data>
<Data>NT AUTHORITY\LOCAL SERVICE</Data>
<Data>26</Data>
<Data>NT AUTHORITY\LOCAL SERVICE</Data>
<Data>False</Data>
<Data> at Telerik.Sitefinity.Pages.Model.PageNode.PreStore()
at OpenAccessRuntime.DataObjects.PCStateMan.doJDOPreStore(LifecycleListenerManager[] listeners)
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.callPreStore()
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.prepareForStore(Boolean commit)
at OpenAccessRuntime.DataObjects.OpenAccessPersistenceManagerImp.flushRetainState()
</Data>
</EventData>
</Event>
Thanks!
Hello Jason,
This issue could be caused when on destination site already exists a page with the same url like the page that is being synchronized from source site.
According to Sitefinity documentation following prerequisite should be met:
"The target and the source databases must be the same. Sitefinity synchronizes only the content, not the database itself. Before you setup synchronization, copy the database, so that it is the same on both locations."
If the advices above do not resolve the case, please, open a support ticket and provide us with project, configuration and database in order to investigate the problem locally!
Let us know if you need further assistance!
Regards,
Milena
Telerik
Hi,
We manually copied database and site files from staging to production, and we received failures. We then tried clearing the sf_scheduled_tasks and sf_site_sync_log_entry tables, and that also failed. We are seeing errors as follows:
----------------------------------------
----------------------------------------
Timestamp: 2/25/2014 3:21:10 AM
Message: Item was not sent.
Item information: id = 'd9c9ef97-5893-6470-a118-ff000091c3dc'; type = 'Telerik.Sitefinity.DynamicModules.Builder.Model.DynamicModule'; provider = 'OpenAccessProvider'; action = ''
Error details:Microsoft.Http.HttpStageProcessingException: GetResponse timed out ---> System.TimeoutException: GetResponse timed out ---> System.Net.WebException ---> System.Net.WebException: The operation has timed out
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.Http.HttpWebRequestTransportStage.HttpTransportAsyncResult.PopulateWebResponse(HttpTransportAsyncResult self, IAsyncResult result, Func`3 getResponse)
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at Microsoft.Http.AsyncResult.End[TAsyncResult](IAsyncResult result, Boolean throwException)
at Microsoft.Http.HttpWebRequestTransportStage.EndProcessRequestAndTryGetResponse(IAsyncResult result, HttpResponseMessage& response, Object& state)
at Microsoft.Http.HttpStageProcessingAsyncResult.NextRequest(HttpStageProcessingAsyncResult self)
--- End of inner exception stack trace ---
at Microsoft.Http.HttpStageProcessingAsyncResult.Complete(HttpStage stage, Exception e)
at Microsoft.Http.HttpStageProcessingAsyncResult.NextRequest(HttpStageProcessingAsyncResult self)
at Microsoft.Http.HttpClient.Send(HttpRequestMessage request)
at Microsoft.Http.HttpClient.Send(HttpMethod method, Uri uri, RequestHeaders headers, HttpContent content)
at Telerik.Sitefinity.Services.Cmis.RestAtom.Client.SendDocument(ISiteSyncExportTransaction document)
at Telerik.Sitefinity.Modules.SiteSync.SyncingManager.Export(ISiteSyncSnapIn snapIn, ISiteSyncExportContext context)
The staging server "Test Connection" button indicates "All servers are available".
PS: we do have a support ticket in 789626, but I'm posting this here in case somebody has info. I'll also post the solution here for others' benefit, assuming that we get this fixed.
Thanks
Some more info...
On a whim, I set up Fiddler on the staging server and updated web.config to use it as a proxy. I confirmed that I was able to Test Connection successfully. The staging server sent "/Sitefinity/Services/SiteSync/SiteSyncService.svc/ConfirmConnection/ " and received back an HTTP/1.1 200 OK, with contents of "true"
However, when synchronizing an updated page, it appears that the response time from the production server exceeds that which the staging server is willing to wait. In this instance, the response came in 2 minutes, 5 seconds. The response from the production sever was an HTTP/1.1 200 OK, with zero bytes of content. Is there a way to turn up the timeout threshold on the staging (sending) server?
Hello,
You could also try to clear your search index data and re-create it. This could solve the problem as there was a known issue with some of the earlier Sitefinity versions when perfoming SiteSync.
Another possible solution could be to raise your HttpBindings as described in MSDN:
http://msdn.microsoft.com/en-us/library/hh924831(v=vs.110).aspx
Regards,
Vassil Vassilev
Telerik