I am trying to Target Publish from CM-A to CM-B. I setup a target from CM-A to CM-B (web). Every time I target Publish. I remotely see that the content got pushed to CM-B. When I login to CM-B, and switch to web database I do not see the changes. Is this a permissions issue? or what is wrong? In fact if I restart an instance everything shows up.
-
Have you checked the publishing logs yet?– Jeff SulitMay 18, 2017 at 18:52
-
No, this is not a permission issue but rather caching. The issue is that when publishing to the CM-B, sitecore cache is not cleared on the server. Instead of restarting the instance, you can navigate to the cache.aspx page on the CM-B server and clear the cache. You will see the items appear. Are you making use of scalability settings? Also, does the html cache clearer agent active. You need to see in the event publish:end and publish:remote:end if the agent is there– Hishaam NamooyaMay 18, 2017 at 18:55
-
Nishaam what settings do i need to add to event publish:end in order to clear the cache?– TonyMay 18, 2017 at 19:01
-
Have you checked this yet? sitecore.stackexchange.com/questions/5608/…– DiegoMay 18, 2017 at 19:11
-
@Tony, please see answer below– Hishaam NamooyaMay 18, 2017 at 19:12
2 Answers
No, this is not a permission issue but rather caching. The issue is that when publishing to the CM-B, sitecore cache is not cleared on the server. Instead of restarting the instance, you can navigate to the http://[domain]/sitecore/admin/cache.aspx
page on the CM-B server and clears the cache. You will see the published items.
Points to checks:
Make sure that the agent HtmlCacheClearer
is present in the publish:end
and publish:end:remote
Check this by going to the http://[domain]/sitecore/admin/showconfig.aspx
page
Make use of the Scalability Settings. More info can be found here on how to setup it and also how the Event Queue works here. Below is a brief example of the Scalability Setting.
On CM-A
<setting name="InstanceName">
<patch:attribute name="value">CM1</patch:attribute>
</setting>
<setting name="Publishing.PublishingInstance">
<patch:attribute name="value"></patch:attribute>
</setting>
On CM-B
<setting name="InstanceName">
<patch:attribute name="value"></patch:attribute>
</setting>
<setting name="Publishing.PublishingInstance">
<patch:attribute name="value">CM1</patch:attribute>
</setting>
As you see, since you are publishing from CM-A to CM-B, the Publishing Instance on CM-A is blank but on CM-B it contains the name of the Publishing Instance Name from CM-A. This tells Sitecore that when an event is triggered on CM1 (CM-A), all other servers which has the Publishing Instance Name set to CM1 need to trigger the different events.
The Event Queue should be enable. Again, from the showconfig.aspx
page, check if the below setting is true
.
<setting name="EnableEventQueues" value="true"/>
-
-
Yes, Sitecore will populate it with the machine name at runtime. May 18, 2017 at 19:20
-
All the settings look good I checked everything. CacheClearer is there also. On regular and on remote.– TonyMay 18, 2017 at 19:20
-
Yes, by default when installing Sitecore those are already present. But sometimes, due to some patching, it may be overridden. That is why, it is preferable to perform the check in the
showconfig.aspx
since sitecore will compile all the configs file into only 1 file. But I am pretty sure it is due to the Scalability Settings. This by default is disable. May 18, 2017 at 19:22 -
Checked the showconfig.aspx everything looks good. What could be he reason the caching is not executing?– TonyMay 18, 2017 at 19:24
It's probably a caching or Publish event issue, since you can see the data if you restart the server (not a security issue).
What SC version are you using? What's the infra setup, how many Authoring servers?
When you're on CM-A, and switch to the CM-B (Web database) do you see the contente?