Understanding the Snapshots feature in DRM

A snapshot is an object that captures a map at a particular point in time. You can use a snapshot to rebuild the map and the objects that it contains exactly as they were when the snapshot was created.

When you create a snapshot for a map, the system creates an .xml file that contains a list of all the objects in the map and submaps along with their current version numbers.

For example, consider the following map, which contains a topic and a submap:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE bookmap PUBLIC "-//IXIA//DTD DITA Map for Release Management//EN" "IxiaMap-releasemanagement.dtd">
<bookmap id="ddp1441205293768" xml:lang="en-us">
	<title>Sample map</title>
	<containerref href="kiy1441205259960.ditamap"/>
	<chapter keyref="bhi1441205335829"/>
	<chapter format="ditamap" keyref="dsi1441206564020"/>
</bookmap>

The following code shows the contents of the snapshot file for this map. The snapshot includes the all objects referenced in the topic (in this case, an image and referable content) as well as all the objects in the submap (in this case, a task that also includes an image).

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE snapshot PUBLIC "-//IXIA//DTD DITA CMS Snapshot//EN" "snapshot.dtd">
<snapshot id="ddp1441205293768" xml:lang="en-us">
	<title>Sample map--Snapshot</title>
	<snapshotmeta>
		<resourceid base="/content/authoring/" id="ddp1441205293768.ditamap" rev="3"/>
	</snapshotmeta>
	<manifest>
		<snapshotref cms-status="Authoring:done" 
                   href="../../authoring/ddp1441205293768.ditamap" 
                   id="ddp1441205293768"
                   navtitle="Sample map" 
                   rev="4" 
                   type="bookmap">

         <!-- Snapshot for topic bhi1441205335829.xml and its
              image and referable-content -->

         <snapshotref cms-status="Authoring:done" 
                      href="../../authoring/bhi1441205335829.xml" 
                      id="bhi1441205335829"
                      navtitle="A Topic" 
                      rev="3" 
                      type="concept"/>
         <snapshotref cms-status="Authoring:done" 
                      href="../../authoring/lar1397660192937.image" 
                      id="lar1397660192937"
                      navtitle="lock manager icon" 
                      rev="1" 
                      type="imagemeta"/>
         <snapshotref cms-status="Authoring:done" 
                      href="../../authoring/lar1398347925155.xml" 
                      id="lar1398347925155"
                      navtitle="Technical Support" 
                      rev="3" 
                      type="referable-content"/>

         <!-- Snapshot for submap dsi1441206564020.ditamap and its
              task, which also includes an image -->
         <snapshotref cms-status="Authoring:done" 
                      href="../../authoring/dsi1441206564020.ditamap" 
                      id="lar1401202413026"
                      navtitle="Sample sub-map" 
                      rev="3" 
                      type="bookmap"/>
         <snapshotref cms-status="Authoring:done" 
                      href="../../authoring/lar1397660191604.xml" 
                      id="lar1397660191604"
                      navtitle="Install Tomcat on Windows" 
                      rev="3" 
                      type="task"/>
          <snapshotref cms-status="Authoring:done" 
                      ref="../../authoring/lar1397660191290.image" 
                      id="lar1397660191290"
                      navtitle="Apache Tomcat Configuration" 
                      rev="1" 
                      type="imagemeta"/>

         <!-- Snapshots for the container and container part -->
                      
		<snapshotref cms-status="Authoring:done" 
                      ref="../../authoring/ibx1539780690006.ditamap" 
                      id="ibx1539780690006"
                      navtitle="Product A V1" 
                      rev="2" 
                      type="container"/>
          <snapshotref cms-status="Authoring:done"             
                      ref="../../authoring/gbn1539780690228.ditamap" 
                      id="gbn1539780690228"
                      navtitle="Product A V1 (0001)" 
                      rev="3" 
                      type="containerpart"/>      
	</manifest>
</snapshot>
For the map and each object in the map, the following information is kept:
  • Status of the object
  • Link to the object in IXIA CCMS Desktop
  • Navtitle
  • Revision number
  • Object type

This information allows CCMS Desktop to recreate the map exactly as it was when the snapshot was created. Once created, you can search for a snapshot in the Content Store like other objects.

Why use snapshots?

Creating a snapshot does not create copies of the map and its objects. It creates a text file that lists the map's contents at a specific point in time, and you can create a snapshot from a map that is in any state as long as the map is not locked.

Creating a snapshot only makes one text file, so it has virtually no impact on the number of objects in the Content Store.

Uses of snapshots

After creating a snapshot, you can take advantage of the following:
  • Generate the output of a snapshot: At any time you can see the content of a snapshot by generating its output. When you generate the output of a snapshot, the Output Generator retrieves from the Content Store the versions of the map and its objects as specified by the snapshot. New files are not created.
  • Keep a historical record of all your documentation releases: Every time that you release your documentation or at important milestones, you can make a snapshot of your map. This ensures that you can see the content of a specific release at any time by generating its output.
  • Localize from a snapshot: You can select a snapshot when you want to localize content. Localizing a snapshot is like localizing the map that the snapshot was created from except that the details and revisions in the snapshot are always used. The snapshot must be in Authoring:done status before you can localize it.