The <StorageService> element configures back-end plugins used for persistent storage of information across requests, and in some cases, restarts. Generally used only within the shibd service.

Other plugin components are layered on top of this service, and you can define multiple versions and reference them as needed, although typically only one is used.

On Version 2.4 and above, omitting this element will result in an in-memory plugin identified as id="mem", per the example shown below for the Memory StorageService.

Common Attributes


Memory StorageService

Identified by type="Memory", stores data in-memory and does not persist it across restarts of the shibd service.

<StorageService type="Memory" id="mem" cleanupInterval="900"/>

On Version 2.4 and above, the example above is the default plugin created if no StorageService is defined in the configuration.

Attributes


ODBC StorageService

Identified by type="ODBC", stores data using an ODBC-compliant database. Persists across restarts and supports shared access across nodes of a cluster, provided the ODBC driver and the database support transactions. No locking is performed inside the plugin itself.

For more detailed information on using this plugin, and tips for specific databases, check the how-to topic. Note that in addition to the code below, this plugin (or its library odbc-store.so) has to be loaded by the Service Provider as is described on NativeSPOutOfProcess.

<StorageService type="ODBC" id="db" cleanupInterval="900">
    <ConnectionString>
    DRIVER=drivername;SERVER=dbserver;UID=shibboleth;PWD=password;DATABASE=shibboleth;APP=Shibboleth
    </ConnectionString>
</StorageService>

Attributes

Child Elements


Memcache StorageService

Identified by type="MEMCACHE", stores data in one or a cluster of http://www.danga.com/memcached servers. Persists across restarts, it's pretty fast and supports shared access across nodes of a cluster. Locking is performed inside the plugin itself. Note that the memcache store itself is volatile so if the memcache servers restart, all the state is lost.

This plugin is generally only available in custom builds. Also note that in addition to the code below, this plugin (or its library memcache-store.so) has to be loaded by the Service Provider as is described on NativeSPOutOfProcess.

<StorageService type="MEMCACHE" id="mc" prefix="SERVICE_PREFIX:">
  <Hosts>
    10.135.64.71:11211, 10.135.64.72:11211
  </Hosts>
</StorageService>

<StorageService type="MEMCACHE" id="mc-ctx" prefix="SERVICE_PREFIX:" buildMap="1">
  <Hosts>
    10.135.64.71:11211, 10.135.64.72:11211
  </Hosts>
</StorageService>

<SessionCache type="StorageService" cacheTimeout="28000" StorageService="mc-ctx" StorageServiceLite="mc" />
<ReplayCache StorageService="mc"/>
<ArtifactMap StorageService="mc" artifactTTL="180"/>

Attributes

Child Elements