type=page
status=published
title=list-persistence-types
next=list-protocol-filters.html
prev=list-password-aliases.html
~~~~~~

= list-persistence-types

[[list-persistence-types-1]][[GSRFM00191]][[list-persistence-types]]

== list-persistence-types

Lists registered persistence types for HTTP sessions and SFSB instances

[[sthref1743]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-persistence-types [--help]
--type={web|ejb}
----

[[sthref1744]]

=== Description

The `list-persistence-types` subcommand lists registered persistence
types for HTTP sessions and stateful session bean (SFSB) instances. The
built-in persistence types are `memory`, `file`, and `replicated`. The
`memory` type does not apply to SFSB instances.

Other persistence types can be added using the `StrategyBuilder` class.
For more information, see the link:add-on-component-development-guide.html#GSACG[{productName} Add-On Component Development Guide].

To set the persistence type for HTTP sessions, use the `set` subcommand
to set the `persistence-type` attribute. For example:

[source]
----
asadmin> set c1-config.availability-service.web-container-availability.persistence-type=file
----

To set the persistence type for SFSB instances without availability
enabled, use the `set` subcommand to set the `sfsb-persistence-type`
attribute. For example:

[source]
----
asadmin> set c1-config.availability-service.ejb-container-availability.sfsb-persistence-type=file
----

To set the persistence type for SFSB instances with availability
enabled, use the `set` subcommand to set the `sfsb-ha-persistence-type`
attribute. For example:

[source]
----
asadmin> set
c1-config.availability-service.ejb-container-availability.sfsb-ha-persistence-type=replicated
----

This subcommand is supported in remote mode only.

[[sthref1745]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--type`::
  Specifies the type of sessions for which persistence types are listed.
  Allowed values are as follows:

  * `web` — Lists persistence types for HTTP sessions.
  * `ejb` — Lists persistence types for SFSB instances.

[[sthref1746]]

=== Examples

[[GSRFM701]][[sthref1747]]

==== Example 1   Listing Persistence Types for HTTP Sessions

This example lists persistence types for HTTP sessions.

[source]
----
asadmin> list-persistence-types --type=web
memory
file
replicated

Command list-persistence-types executed successfully.
----

[[sthref1748]]

=== Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref1749]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:get.html#get-1[`get`(1)], link:list.html#list-1[`list`(1)],
link:set.html#set-1[`set`(1)]

link:add-on-component-development-guide.html#GSACG[{productName} Add-On Component
Development Guide]


