<StorageService> element configures back-end plugins used for persistent storage of information across requests, and in some cases, restarts. Generally used only within the
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.
type="Memory", stores data in-memory and does not persist it across restarts of the
<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.
cleanupInterval(time in seconds) (default is 900 on 2.4+)
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>
cleanupInterval(time in seconds) (default is 900)
isolationLevel("SERIALIZABLE", "REPEATABLE_READ", "READ_COMMITTED, or "READ_UNCOMMITTED")
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"/>
buildMap(1 or 0)
nonBlocking(1 or 0)