[id="making-caches-available_{context}"]
= Making caches available

Make caches available for read and write operations by forcing them out of `DEGRADED` mode.

[IMPORTANT]
====
You should force clusters out of `DEGRADED` mode only if your deployment can tolerate data loss and inconsistency.
====

.Procedure

Make caches available in one of the following ways:

* Change the availability of remote caches with the REST API.
+
[source,options="nowrap",subs=attributes+]
----
POST /v2/caches/<cacheName>?action=set-availability&availability=AVAILABLE
----

* Programmatically change the availability of embedded caches with the `AdvancedCache` API.
+
[source,java,options="nowrap",subs=attributes+]
----
include::code_examples/AdvancedCacheAvailibilityMode.java[]
----

[role="_additional-resources"]
.Additional resources
* link:{rest_docs}#rest_v2_caches_set_availability[REST API: Setting cache availability]
* link:{javadocroot}/org/infinispan/AdvancedCache.html[org.infinispan.AdvancedCache]
