Documentation Center

Storage Layer Global/Storages section

The Storages child section of the Global section in the Storage Layer configuration file, cd_storage_conf.xml, configures all available storage locations.

Overall structure of file

The file has the following basic structure:
<Storages>
  <StorageBindings>
    <Bundle/>
    ...
  </StorageBindings>
  <Wrappers>
    <Wrapper/>
    ...
  </Wrappers>
  <Storage/>
  ...
</Storages>

Storages element

The Storages element has one optional string attribute, TempFileSystemTransactionLocation, specifying where to temporarily store file system transactions for all file system storages. If omitted, this value defaults to whatever the java.io.tmpdir Java system property is set to.

Storages has the following child sections:
Child sectionRequired?
StorageBindingsno
Wrappersno
Storage (one or more times)yes

StorageBindings child section

If specified, this section overrides the default Tridion DAO bundles. It must have one or more Bundle child elements, each of which defines a storage bundle containing DAO definitions. Use the optional string src attribute of the Bundle element to specify the relative location of the storage bundle.

Wrappers child section

If specified, this section contains storage wrapper definitions. It must have one or more Wrapper child elements, each of which defines a storage wrapper. The Name attribute of the Wrapper element specifies the name of the defined wrapper source. Wrapper can have any number of child elements of any type.

Storage child section(s)

Each Storage child section configures a storage provider. The Storage element has the following attributes, all optional:
Attribute nameTypeDescription of value
TypestringThe type of the storage provider used, such as File or Persistence
ClassstringThe class that implements the storage provider
IdstringThe identifier of the storage provider, used to map item types and Publication storage configuration to it
UsernamestringThe name of the user to use for database interaction
PasswordstringThe password of the user to use for database interaction
UrlstringThe URL that the database driver should connect to
DriverstringThe fully qualified classname for the driver to be used.
JNDINamestringThe JNDI name of a data source to use. When used, No other attributes or a data source may be specified.
dialectstringThe dialect used by this storage provider, if it is persistence-based
FlushIntervalintegerIf Type is set to Persistence, the maximum allowed amount of JPA EntityManager operations before they are actually flushed. Defaults to 100 if unspecified. No file system flush interval is implemented.
defaultFilesystemBooleanWhether the file structure of the file system storage will be the default one
defaultStorageBooleanWhether file system storage will be the default one
NamespaceServiceBeanstringThe NamespaceService bean used to resolve namespaces for this data source. If left unspecified, it defaults to NamespaceService.
A Storage child element has the following child elements or child sections, all optional:
Pool child element
The Pool child element defines pooling behavior through the following attribute:
Attribute nameTypeRequired?Description of value
AcquireRetryAttemptsintegernoThe number of times a connection is retried in the event of a failure to connect. "5" would be a good value for this attribute.
In addition to this attribute, Hikari CP, the third-party software that handles connection pooling, offers a number of additional attributes, all optional, for you to configure (refer to https://github.com/brettwooldridge/HikariCP#gear-configuration-knobs-baby to learn what they are). Any attributes documented there are configurable as Pool element attributes, and are passed on to Hikari.
DataSource child section
The DataSource element has a Class attribute to specify its data source Java implementation class, which must be one of the following:
Database typeClass value
Microsoft SQL Server com.microsoft.sqlserver.jdbc.SQLServerDataSource
Oracle oracle.jdbc.pool.OracleDataSource
The DataSource element specifies its data source properties in a number of Property child elements, each with a Name and Value attributes. The properties you can set are:
Property name (value of the Name attribute)Description of value of the Value attribute
serverNameThe name of the database server host
portNumberThe port of the database server: 1433 for Microsoft SQL Server, 1521 for Oracle.
databaseNameThe name of the database
userThe name of a user who can access the database
passwordThe password for that user
loginTimeoutThe amount of time, in seconds, that the driver waits for a connection to be established before timing out the connection request
driverType(Oracle only) The type of driver (thin)
networkProtocol(Oracle only) The network protocol to use (tcp)
Root child element
When using a file system-based storage provider, include this element and set its Path attribute to the storage location to be used for the file system-based operations.
QueryGenerator child element
This element configures the storage provider used by the item types or publication storage mappings. It has a Name attribute for the property name, and a Class property for the Java class that implements the property.