3

Sitecore 8.2

I have a CM and 2 CDs like so:

                                   ___ CD1 (web1, core)
CM (master, core, web1, web2) ____/
                                  \___ CD2 (web2, core2)

Note that core is shared by CM and CD1, but not CD2.

When I publish from CM to both CDs, Sitecore "knows" to put the publish:end:remote event in both web1 and web2 database EventQueue tables. It does not put it in the core EventQueue table, which is the default eventing provider as defined in the config:

<eventing defaultProvider="sitecore">    
    <providers>
      <clear/>
      <add name="sitecore" type="Sitecore.Eventing.EventProvider, Sitecore.Kernel" systemDatabaseName="core"/>
    </providers>
    ...
</eventing>

Interestingly, the publish:complete:remote event does not behave the same way: it goes straight to the core database EventQueue table.

I've tried decompiling the Sitecore assemblies and can't find where there's any kind of switch that says "raise event X in database Y". It's just "raise event X". I'm sure I'm missing something.

How does Sitecore know to put one type of event (publish:end:remote) in each web database and another (publish:complete:remote) in core?

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.