0
votes

Can anyone explain to me what state the data should be in for a healthy sitecore instance in each database?

for example: We currently have an issue with publishing in a 2 server setup. Our staging server hosts the SQL instance and the authoring / staging instance of sitecore. We then have a second server to host just the production website for our corp site.

When I look in the master database the PublishQueue table is full of entries and the same table in the web database is empty.

Is this correct?

No amount of hitting publish buttons is changing that at the moment.

How do I determine what the state of an item is in both staging and production environments without having to write an application on top of the sitecore API which I really don't have time for?

3
What are you trying to determine? Whether an Item has been published? You could use the Published Item Comparer module, but it may need updating for SC 7.2jammykam
SC if I go to production and look at the live site is not showing some items, if I then add ?sc_mode=edit to the link and view the item in the page editor it reports that the item is published. All publishing tools also reflect this ... I'm trying to understand why / how I could get in this situation by determining if the data is in the right state.War
Something seems not to be right. If you are sure the Item is publishable then try to force it by doing a "Republish - Publish Everything" on the parent item + subitems. Also, check your clock settings on all servers (inc DB) and make sure they are all in sync and timezones match.jammykam
Check of the missing item is in the web database, if it is there you have maby a cache issue?, check of the website name is added to the publish:end and publish:end:remote in the web.config to flush caches after a publish.Jan Bluemink

3 Answers

2
votes

This is a normal behavior for the Publish Queue of the Web Database to be blank. The reason is because changes are made on the Master database which will add an entry in the Publish Queue.

After publishing, the item will not be removed from the Publish Queue table. It is the job of the CleanupPublishQueue to cleanup the publish queue table.

1
votes

In general, tables WILL be different between the two databases as they are used for different purposes. Your master database is generally connected to by authors and the publishing logic, while the web database is generally used as a holding place for the latest published version of content that should be visible.

In terms of debugging publishing, from the Sitecore desktop, you can swap between 'master' and 'web' databases in the lower right corner and use the Content Editor to examine any individual item. This is useful for spot checking individual items have been published successfully.

If an item is missing from 'web', or the wrong version is in 'web', you should examine the following:

  1. Publishing Restrictions on the item: Is there a restriction applied to the item or version that prevents it from publishing at this time?
  2. Workflow state: Is the item/version in the final approved workflow state? You can use the workbox to do a quick check for items needing approval.
  3. Connection strings: Is your staging system connection strings setup to connect to the correct 'web' used by the production delivery server?
0
votes

The Database table [PublishQueue] is a table where all save and other mutations are stored. This table is used by a Incremental Publish. Sitecore get all the items from the PublishQueue table that were modified more recently than the last incremental publish date. The PublishQueue tabel is not used by a full publish

So it is okay that this Table contain a lot of records on the Master. The web database has the same database scheme. (not the same data, web contain only one version of a item, optimize for performance) The PublishQueue on the web is Empty this is normal.

To Know the state of an item compair the master version with the web version, there can be more than 1 webdatabase, The master database do not know the state/version of the web database