Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Dave Woestenborghs 3504 posts 12133 karma points MVP 8x admin c-trib
    Sep 02, 2015 @ 08:20
    Dave Woestenborghs
    0

    Loadbalancing issues in 7.3-beta3

    Hi

    Currently we are running a Umbraco 7.3-beta3 in azure.

    We have the following setup :

    • 1 VM that is used for content editing
    • 1 Web app at the moment for front end (umbraco backend access is restrictred using IIS rewrites)

    When I publish something in the content editing instance (VM) these changes are not always visible on the front end (Web app)

    When I look in the umbracoServer table I see both instances as active. Also the last notified date get's updated after changes for both instances.

    But when I log in through FTP on the web app I see that the file in /App_Data/TEMP/DistCache/ doesn't have the latest id found in the umbracoCacheInstruction table

    When the web app restarts this get's updated all content changes are visible.

    Am I missing some config settings or code to make this work?

    It seems to work flawless on our dev environments. When one developer publishes something on his machine, all other registered instances are updated.

    Dave

  • Dave Woestenborghs 3504 posts 12133 karma points MVP 8x admin c-trib
    Sep 02, 2015 @ 08:28
    Dave Woestenborghs
    0

    I just discoverd that the lastNotifiedDate doesn't get update when doing a publish for the web app. This only happens after the app has been restarted.

    Dave

  • Dave Woestenborghs 3504 posts 12133 karma points MVP 8x admin c-trib
    Sep 02, 2015 @ 08:53
    Dave Woestenborghs
    0

    I did some more testing. Only seems to occur when a node doesn't have a domain assigned. But only in the Azure environment. If i publish a node that has a domain assigned all changes are visible after that.

    Still digging :-)

    Dave

  • Dave Woestenborghs 3504 posts 12133 karma points MVP 8x admin c-trib
    Sep 02, 2015 @ 09:01
    Dave Woestenborghs
    0

    After some more digging I discoverd that the syncing is done when you make a request to the load balanced instance.

    But we have some custom Url providers and virtual node handlers in place and it doesn't seem to sync when you call a virtual url.

    Dave

  • Dave Woestenborghs 3504 posts 12133 karma points MVP 8x admin c-trib
    Sep 02, 2015 @ 09:21
    Dave Woestenborghs
    1

    So did some more digging.

    It seems when you do a request to the website the Sync method on the Umbraco.Core.Sync.DatabaseServerMessenger is called.

    However when we call a page with a virtual node this method doesn't seem to be called.

    From logs when calling a normal page

    2015-09-02 09:11:56,321 [P3616/D5/T47] DEBUG Umbraco.Web.UmbracoModule - Begin request: http://mydomain/en/.
     2015-09-02 09:11:56,337 [P3616/D5/T47] DEBUG Umbraco.Core.Sync.DatabaseServerMessenger - Syncing from database...
     2015-09-02 09:11:56,368 [P3616/D5/T47] DEBUG UmbracoExamine.DataServices.UmbracoLogService - ReIndexNode with type: content, Provider=InternalIndexer, NodeId=1264
     2015-09-02 09:11:56,368 [P3616/D5/T47] DEBUG UmbracoExamine.DataServices.UmbracoLogService - AddSingleNodeToIndex with type: content, Provider=InternalIndexer, NodeId=1264
     2015-09-02 09:11:56,368 [P3616/D5/T47] DEBUG UmbracoExamine.DataServices.UmbracoLogService - ReIndexNode with type: content, Provider=LearningJourneysIndexer, NodeId=1264
     2015-09-02 09:11:56,368 [P3616/D5/T47] DEBUG UmbracoExamine.DataServices.UmbracoLogService - AddSingleNodeToIndex with type: content, Provider=LearningJourneysIndexer, NodeId=1264
     2015-09-02 09:11:56,385 [P3616/D5/T49] DEBUG UmbracoExamine.DataServices.UmbracoLogService - Index deleted for term: __NodeId with value 1264, Provider=LearningJourneysIndexer, NodeId=-1
     2015-09-02 09:11:56,399 [P3616/D5/T47] DEBUG Umbraco.Web.PublishedCache.XmlPublishedCache.XmlCacheFilePersister - Touched, was released...
     2015-09-02 09:11:56,399 [P3616/D5/T47] DEBUG Umbraco.Web.PublishedCache.XmlPublishedCache.XmlCacheFilePersister - Create new...
     2015-09-02 09:11:56,399 [P3616/D5/T47] DEBUG Umbraco.Web.Scheduling.BackgroundTaskRunner - [XmlCacheFilePersister] Task added Umbraco.Web.PublishedCache.XmlPublishedCache.XmlCacheFilePersister
     2015-09-02 09:11:56,399 [P3616/D5/T47] DEBUG Umbraco.Web.PublishedCache.XmlPublishedCache.XmlCacheFilePersister - Created, save in 4000ms.
     2015-09-02 09:11:56,399 [P3616/D5/T52] DEBUG UmbracoExamine.DataServices.UmbracoLogService - Index created for node 1264, Provider=InternalIndexer, NodeId=1264
     2015-09-02 09:11:56,399 [P3616/D5/T47] DEBUG Umbraco.Core.Sync.ServerMessengerBase - Invoking refresher Umbraco.Web.Cache.MacroCacheRefresher on local server for message type RefreshAll
     2015-09-02 09:11:56,528 [P3616/D5/T47] DEBUG UmbracoExamine.DataServices.UmbracoLogService - ReIndexNode with type: content, Provider=InternalIndexer, NodeId=1264
     2015-09-02 09:11:56,528 [P3616/D5/T47] DEBUG UmbracoExamine.DataServices.UmbracoLogService - AddSingleNodeToIndex with type: content, Provider=InternalIndexer, NodeId=1264
     2015-09-02 09:11:56,528 [P3616/D5/T47] DEBUG UmbracoExamine.DataServices.UmbracoLogService - ReIndexNode with type: content, Provider=ExternalIndexer, NodeId=1264
     2015-09-02 09:11:56,528 [P3616/D5/T47] DEBUG UmbracoExamine.DataServices.UmbracoLogService - AddSingleNodeToIndex with type: content, Provider=ExternalIndexer, NodeId=1264
     2015-09-02 09:11:56,528 [P3616/D5/T47] DEBUG UmbracoExamine.DataServices.UmbracoLogService - ReIndexNode with type: content, Provider=LearningJourneysIndexer, NodeId=1264
     2015-09-02 09:11:56,528 [P3616/D5/T47] DEBUG UmbracoExamine.DataServices.UmbracoLogService - AddSingleNodeToIndex with type: content, Provider=LearningJourneysIndexer, NodeId=1264
     2015-09-02 09:11:56,528 [P3616/D5/T72] DEBUG UmbracoExamine.DataServices.UmbracoLogService - Index deleted for term: __NodeId with value 1264, Provider=LearningJourneysIndexer, NodeId=-1
     2015-09-02 09:11:56,540 [P3616/D5/T47] DEBUG Umbraco.Core.Sync.DatabaseServerMessenger - Complete (took 210ms)
     2015-09-02 09:11:56,556 [P3616/D5/T40] DEBUG UmbracoExamine.DataServices.UmbracoLogService - Index created for node 1264, Provider=ExternalIndexer, NodeId=1264
     2015-09-02 09:11:56,603 [P3616/D5/T47] DEBUG Umbraco.Web.Routing.PublishedContentRequestEngine - FindDomain: Uri="http://mydomain/en"
    

    From the logs for a request to a virtual node :

    2015-09-02 09:12:02,922 [P3616/D5/T54] DEBUG Umbraco.Web.UmbracoModule - Begin request: http://mydomain/en/virtualroute
    2015-09-02 09:12:02,938 [P3616/D5/T54] DEBUG Umbraco.Web.Routing.PublishedContentRequestEngine - FindDomain: Uri="http://mydomain/en/virtualroute"
    

    Dave

  • Dave Woestenborghs 3504 posts 12133 karma points MVP 8x admin c-trib
    Sep 02, 2015 @ 09:51
    Dave Woestenborghs
    100

    Just created a issue for this on the tracker : http://issues.umbraco.org/issue/U4-7056

  • Dave Woestenborghs 3504 posts 12133 karma points MVP 8x admin c-trib
    Sep 02, 2015 @ 11:00
    Dave Woestenborghs
    0

    Just updated the issue with the following information.

    It seems that virtual routes are not seen as routeable in Umbraco.

    I just attached debugger and have found the following result.

    In https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Web/UmbracoModule.cs the method EnsureUmbracoRoutablePage is called for each (non client side request)

    In this method EnsureDocumentRequest is false for a virtual node.

    This because the call to the method IsReservedPathOrUrl in https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Core/Configuration/GlobalSettings.cs

    In this method a route is found for the virtual node and Umbraco sees this as reserverd path.

    Because of this the outcome of EnsureUmbracoRoutablePage is EnsureRoutableOutcome.NotDocumentRequest.

    In the method UmbracoModule_RouteAttempt in https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Web/BatchedDatabaseServerMessenger.cs the sync method is only called for backend request the outcome is EnsureRoutableOutcome.NotDocumentRequest.

  • Dave Woestenborghs 3504 posts 12133 karma points MVP 8x admin c-trib
    Sep 02, 2015 @ 13:33
    Dave Woestenborghs
    0

    The issue has been marked as solved on the issue tracker. So I will mark this post as a solution as well

Please Sign in or register to post replies

Write your reply to:

Draft