Intermittently we are getting a message The current item does not have a version in "English : English when clicking on an item (page) in the content tree for Sitecore.
We click the link Add a new version but from time to time, we get the same message that there isn't a version.
Anyone experience this before / have an idea of the cause?
This message is shown from this class: Sitecore.Pipelines.GetContentEditorWarnings.HasNoVersions. Can you check if you have custom code for removing versions?
Please check if you have custom code here:
<event name="item:versionRemoved">
<handler type="Sitecore.Globalization.ItemEventHandler, Sitecore.Kernel" method="OnVersionRemoved"/>
<handler type="Sitecore.Links.ItemEventHandler, Sitecore.Kernel" method="OnVersionRemoved"/>
<handler type="Sitecore.Rules.ItemEventHandler, Sitecore.Kernel" method="OnVersionRemoved"/>
</event>
.
The issue was because we were only using a Master database and publishing to the Master DB and so overwriting and SiteCore understandably getting confused!
Related
When I login to ColdFusion 2018 admin console the screenshot below shows up. The close button is not working. Neither is the search box. Restarting the WebLogic server and reopening console are not helpful. How to fix this? I never had this issue using ColdFusion console before this.
This is the console log in browser. No error reported in Eclipse.
You are missing the /cf_scripts mapping that serves the jQuery script that is required to run the frontend of the CF2018 admin console.
The mapping should point to /ColdFusion2018/cfusion/wwwroot/cf_scripts/.
If you are using the built-in Tomcat, locate /ColdFusion2018/cfusion/runtime/conf/server.xml and adjust your context:
<Context path="" docBase="/your-webroot/" workDir="/ColdFusion2018/cfusion/runtime/conf/Catalina/localhost/tmp">
<Resources>
<PreResources className="org.apache.catalina.webresources.DirResourceSet" base="/ColdFusion2018/cfusion/wwwroot/CFIDE" webAppMount="/CFIDE" />
<PreResources className="org.apache.catalina.webresources.DirResourceSet" base="/ColdFusion2018/cfusion/wwwroot/WEB-INF" webAppMount="/WEB-INF" />
<PreResources className="org.apache.catalina.webresources.DirResourceSet" base="/ColdFusion2018/cfusion/wwwroot/cf_scripts" webAppMount="/cf_scripts" />
</Resources>
</Context>
If you are using IIS, you can simly add a virtual directory. A symlink would probably work too for that matter.
It seems to be an incorrect value in your neo-runtime.xml file. CfFormScriptSrc value should be just "/cf_scripts/scripts/". For those who don't understand, refer to the discussion at https://forums.adobe.com/message/10705035
Currently working on a sitecore solution which is running version 6.6 and we're experiencing some odd behavior. The site is setup to have multiple targets which are all pointing to individual databases for a webserver for instance web1 - web3 etc... I can confirm that all connection strings are correct and that the web servers are able to communicate to/from the sitecore cms server.
With a lot of reading I found out about the EnableEventQueues (http://www.sitecore.net/learn/blogs/technical-blogs/getting-to-know-sitecore/posts/2010/07/introducing-the-sitecore-event-queue.aspx) which in theory should have resolve this problem, however having enabled this on all web nodes and the cms server it's still experiencing issues.
Our other theory was to recycle an app pool to check if sitecore had cached old content and was waiting on a period to update its cache? However this seemed to fail but pointing the connection string to a working on then worked, so it was like sitecore had only published the changed to a select few nodes.
We're currently at a stand still as to what could be causing this, unless there's any other configs which require enabling?
The ScalabilitySettings.config looks like:
<?xml version="1.0"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<settings>
<setting name="EnableEventQueues">
<patch:attribute name="value">true</patch:attribute>
</setting>
<setting name="InstanceName">
<patch:attribute name="value"></patch:attribute>
</setting>
<setting name="Publishing.PublishingInstance">
<patch:attribute name="value"></patch:attribute>
</setting>
<setting name="Counters.InstanceName">
<patch:attribute name="value"></patch:attribute>
</setting>
<setting name="Caching.SecurityCacheExpiration">
<patch:attribute name="value">00:20:00</patch:attribute>
</setting>
<setting name="Media.DisableFileMedia">
<patch:attribute name="value">false</patch:attribute>
</setting>
<setting name="Media.FileFolder">
<patch:attribute name="value">/App_Data/Replicated/MediaFiles</patch:attribute>
</setting>
</settings>
</sitecore>
</configuration>
Many thanks,
Shaun
Can you show your scalability settings? Specifically, the Instance Name and Publishing Instance Name for your CDs and CMs?
Usually, it is the event queues, as you surmised, but perhaps you have something off in those particular files for the instance names. They should all have the same publishing instance name value and unique values for the instance name.
Update:
Now that I see your scalability settings, I can see the issue. You will need to give your content management instance where publishing is occurring a name. Perhaps something as simple as "CM".
On the content management server, the scalability settings will need to be setup with the same value in the Publishing.PublishInstance and InstanceName settings (e.g. "CM").
On your content delivery servers, the scalability settings will need to be setup with the publishing instance value (e.g. Publishing.PublishInstance = "CM")
You can provide unique InstanceName values on each CD if you like, or leave it blank and Sitecore will generate a unique value for each CD.
Why is this needed?
The event queue informs all sitecore instances connected to it about the events coming from the publishing instance. Each instance needs to know who their associated publisher is so that they know which events to process.
I have setup my Sitecore installation to two different IIS Sites. One has all of the Sitecore Admin files and the other one has a clean web only files sharing the same Web.config, and my Data folder is outside of both folders.
-Sitecore.Data
--Licenses and Logs
-Sitecore.Admin
--Sitecore (folder with files)
-Sitecore.Web
--html,css, and js files
The problem I am running into is that after I do a publish from Sitecore.Admin folder, the Sitecore.Web doesn't update with the changes unless I recycled the app pool for Sitecore.Web. I tried to add a task for recycle the app pool programmatically, but had no success.
<processor type="MySite.Sitecore.Publishing.IISReset, MySite.Sitecore" />
Any suggestion on how to propagate the changes from one IIS node to the other one. I think the problem is that the HtmlCacheClearer is run for the Sitecore.Admin Node, but not for the other one.
You need to enable the EventQueues.
The EventQueues propagates the different events, like publishing, item saved etc. to the frontend servers.
Basically you need to rename a config file.
/App_Config/Include/ScalabilitySettings.config.example to ScalabilitySettings.config
That config file enables the event queue, and some other configurations.
I recommend reading the Sitecore Scaling guide.
http://sdn.sitecore.net/Reference/Sitecore%206/Scaling%20Guide.aspx
Just like dunston said, make sure that ScalabilitySettings.config file is configured right
By enabling EventQueue
And making sure that instance name on Content Delivery server is Unique per server, like 'MachineName-CD1, MachineName-CD2'.
And make sure that HtmlCacheClearer event is added for your website name on PublishEnd:Remote event.
Besides enabling event queue like dunston said, also make sure that your website name is added to the publish:end and publish:end:remote HtmlCacheClear events, if you are using a different site then the default "website" otherwise you Html cache doesn't get cleared at all after a publish.
<event name="publish:end">
<handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
<sites hint="list">
<site>website</site>
</sites>
</handler>
</event>
<event name="publish:end:remote">
<handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
<sites hint="list">
<site>website</site>
</sites>
</handler>
</event>
By publishing though, it sounds like you are possibly talking about deploying new code and you want it to trigger an application pool restart across multiple web servers, regardless? If that is the case, you could add something like this to the logic of that Publishing.IISReset that you built. It could connect to your various public-facing only instances and execute something like:
appcmd recycle apppool sitecore6
This will obviously restart Sitecore on those boxes and cause all the caches to reset completely, free of doubt.
I've already installed the Sitecore active directory module. When a user from active directory has been created, deleted or renamed I want to execute some custom code. Is there a pipeline or function to hook in? Any ideas?
As Trayek said, you can add your custom event handlers in the events:
//Creation
<event name="user:created">
</event>
//Deletion
<event name="user:deleted">
</event>
//Updation
<event name="user:updated"/>
</event>
First of all, override the Sitecore's code, in your custom command and debug, maybe you will be able to fetch the selected roles also, where you can see if the user is an active directory is selected, then you do your custom action, else let it execute as it is.
Hope it helps!
Regards,
Varun Shringarpure
You might be able to use the standard <event name="user:created" />, <event name="user:deleted" /> and/or <event name="user:updated" /> events. You can find these in the web.config, under the <events> node.
I don't know if the module comes with it's own pipelines/events, otherwise it might be better to use them.
[edit]
Do keep in mind this will also run for the creation, deletion and editing of other users (extranet, Sitecore, other domains).
I've recently had some trouble moving the location of the indexes folder (for the in built Sitecore Lucene indexes).
I have updated the setting "IndexFolder" (originally in web.config but moved out into include). The config output in http://{mydomain}/sitecore/admin/showconfig.aspx is correct, the setting has the correct path (now in the Data folder instead of Website folder).
However, when I jump into the control panel and rebuild the index, it is still created in the default location ("/indexes", relative to the web application).
Has anyone had a similar problem in Sitecore not using the correct path?
Make sure the new folder is writable by ASPNET-user or NETWORK SERVICES.
If that's not working, list a Sitecore support case.
OK, when adding settings to an include file make sure you get the xml path correct.
I had:
<sitecore>
<setting name="IndexFolder" value="C:\...\Indexes" />
</sitecore>
Should have had:
<sitecore>
<settings>
<setting name="IndexFolder" value="C:\...\Indexes" />
</settings>
</sitecore>
All is well in Lucene world. Thanks for your help everyone, but it turns out I'm a victim of my own stupidity.