The Sitecore Publish Queue is a table found in all the Sitecore Databases, i.e, Core, Master and Web. This table is very important for Master (Source Database) and Core Databases.
Publish Queue for Master and Web
The purpose of the publishing queue is to store every changes being made on the Sitecore CMS. Most of the time, it is the publishing queue of the master database which is being used.
The main reason is because, every changes is done on the master database, except if changed by the user. On the Web database, the publishing queue is most of the time empty. This is a normal Sitecore behavior.
When incremental publish is being performed, it will make use of the publishing queue to know which item to publish. You will see that there are lots of records in the publish queue table but still the incremental publish method publishes only a small portion of these records. This is because of the timestamp. You can read my previous post about the Sitecore Publish Process to know how incremental publish is being performed.
The publish queue can be cleaned up. This is the job of the CleanupPublishQueue Agent. By default, the cleanup is being executed every 4hrs and will keep records for the last 30 days. You can change the interval and days to keep from the web.config
Publish Queue for Core
The publish queue for the Core database stores information about packages that have been installed on the Sitecore CMS. This helps in keeping track of the different packages being installed.
Moreover, Sitecore stores the packages in the Core database. Here is the path where the packages are stored on the CMS:
Note: The stored packages do not have the items/files that have been installed but rather information about the packages. Below is the list of fields about the package information being stored:
- Package ID.
- Package name.
- Package version.
- Package author.
- Package publisher.
- Package readme.
- Package revision.