1. Appendices

Appendix D – Example of a configuration patch file

Version: 10.5

If you have a web_preview database, you could use the following configuration patch file to update your configuration to use the composite data provider:

<?xml version="1.0" encoding="utf-8" ?>
 <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
   <sitecore>
     <eventing defaultProvider="sitecore">
       <eventQueueProvider>
         <eventQueue name="web_preview" patch:after="eventQueue[@name='web']" type="Sitecore.Data.Eventing.$(database)EventQueue, Sitecore.Kernel">
           <param ref="dataApis/dataApi[@name='$(database)']" param1="$(name)" />
           <param hint="" ref="PropertyStoreProvider/store[@name='$(name)']" />
         </eventQueue>
       </eventQueueProvider>
     </eventing>
     <PropertyStoreProvider>
       <store name="web_preview" patch:after="store[@name='web']" prefix="web_secondary" getValueWithoutPrefix="true" singleInstance="true" type="Sitecore.Data.Properties.$(database)PropertyStore, Sitecore.Kernel">
         <param ref="dataApis/dataApi[@name='$(database)']" param1="$(name)" />
         <param resolve="true" type="Sitecore.Abstractions.BaseEventManager, Sitecore.Kernel" />
         <param resolve="true" type="Sitecore.Abstractions.BaseCacheManager, Sitecore.Kernel" />
       </store>
     </PropertyStoreProvider>
     <databases>
       <!-- web_secondary -->
       <database id="web_preview" patch:after="database[@id='web']" singleInstance="true" type="Sitecore.Data.DefaultDatabase, Sitecore.Kernel">
         <param desc="name">$(id)</param>
         <icon>Images/database_web.png</icon>
         <securityEnabled>true</securityEnabled>
         <dataProviders hint="list:AddDataProvider">
           <dataProvider type="Sitecore.Data.DataProviders.CompositeDataProvider, Sitecore.Kernel">
           <param desc="readOnlyDataProviders" hint="list">
             <protobufItems type="Sitecore.Data.DataProviders.ReadOnly.Protobuf.ProtobufDataProvider, Sitecore.Kernel">
               <filePaths hint="list">
                 <filePath>$(dataFolder)/items/$(id)</filePath>
                 <modulesFilePath>/sitecore modules/items/$(id)</modulesFilePath>
               </filePaths>
             </protobufItems>
           </param>
       <param desc="headProvider">
               <dataProvider ref="dataProviders/main" param1="$(id)">
                 <disableGroup>publishing</disableGroup>
                 <prefetch hint="raw:AddPrefetch">
                   <sc.include file="/App_Config/Prefetch/Common.config" />
                   <sc.include file="/App_Config/Prefetch/Webdb.config" />
                 </prefetch>
               </dataProvider>
             </param>
           </dataProvider>
         </dataProviders>
         <PropertyStore ref="PropertyStoreProvider/store[@name='$(id)']" />
         <remoteEvents.EventQueue>
           <obj ref="eventing/eventQueueProvider/eventQueue[@name='$(id)']" />
         </remoteEvents.EventQueue>
         <archives hint="raw:AddArchive">
           <archive name="archive" />
           <archive name="recyclebin" />
         </archives>
         <cacheSizes hint="setting">
           <data>100MB</data>
           <items>50MB</items>
           <paths>2500KB</paths>
           <itempaths>50MB</itempaths>
           <standardValues>2500KB</standardValues>
         </cacheSizes>
       </database>
     </databases>
   </sitecore>
 </configuration>
  <sitecore>

You must also place your resource files in the appropriate items as resources folders.

  1. In the App_Data\items\ folder, make a copy of the Web folder.

  2. Rename the copy of the folder and the .dat file that it contains.  

    Use the database name for the folder, for example, web_preview and use the database name in the file name, for example, items.web_preview.dat.

  3. If you have SXA installed and if you have a sitecore modules\items\ folder, in the sitecore modules\items\ folder, make a copy of the web folder.

  4. Rename the copy of the folder and the .dat file that it contains.  

    Use the database name for the folder, for example, web_preview and use the database name in the file name, for example, items.web_preview.sxa.dat.

If you have suggestions for improving this article, let us know!