---
schema_version: "1"
id: a0a79c0908fde774d1731fdd6c78596b62f9f6ad3e71ad9795a1cf210668660c
title: Object Store Connector Reference
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/object-store-connector/latest/object-store-connector-reference.md
canonical_url: https://docs.mulesoft.com/object-store-connector/latest/object-store-connector-reference
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 3edbe03897277d074b192cd3301bf60c90cc11b84054bafca773c46881ee2d12
description: MuleSoft Documentation Site
release: "1.3"
latest: true
---
---
product: Object Store Connector
version: 1.3
is-latest-version: true
---

# Object Store Connector Reference

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

Object Store Connector v1.3.0

Support Category: Select

Connector that provides functionality to access and create object store instances.

## Configurations

---

### Config

Default configuration

#### Parameters

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Name</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Name</p></td><td><p>String</p></td><td><p>The name for this configuration. Connectors reference the configuration with this name.</p></td><td></td><td><p>x</p></td></tr><tr><td><p>Connection</p></td><td><div><div><p><a href="#config_connection">Connection</a></p></div></div></td><td><p>The connection types to provide to this configuration.</p></td><td></td><td><p>x</p></td></tr><tr><td><p>Lock Timeout</p></td><td><div><div><p>Number</p></div></div></td><td><p>Timeout for acquiring ObjectStore locks. If not specified, operations wait indefinitely.</p></td><td></td><td></td></tr><tr><td><p>Lock Timeout Unit</p></td><td><div><div><p>Enumeration, one of:</p></div><div><ul><li><p>NANOSECONDS</p></li><li><p>MICROSECONDS</p></li><li><p>MILLISECONDS</p></li><li><p>SECONDS</p></li><li><p>MINUTES</p></li><li><p>HOURS</p></li><li><p>DAYS</p></li></ul></div></div></td><td><p>Time unit for the lock timeout parameter.</p></td><td><p>SECONDS</p></td><td></td></tr></tbody></table>

#### Connection Types

##### Connection

A ConnectionProvider that returns the Mule runtime's default ObjectStoreManager.

###### Parameters

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Name</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Reconnection</p></td><td><div><div><p><a href="#Reconnection">Reconnection</a></p></div></div></td><td><p>When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn't pass after exhausting the associated reconnection strategy.</p></td><td></td><td></td></tr></tbody></table>

## Operations

- [Clear](#clear)

- [Contains](#contains)

- [Remove](#remove)

- [Retrieve](#retrieve)

- [Retrieve All](#retrieveAll)

- [Retrieve All Keys](#retrieveAllKeys)

- [Store](#store)

### Clear

`<os:clear>`

Removes all the contents in the store.

#### Parameters

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Name</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Object Store</p></td><td><div><div><p>One of:</p></div><div><ul><li><p><a href="#objectStore">Object Store</a></p></li><li><p><a href="#objectStorev2">Object Store (Object Store v2)</a></p></li><li><p><a href="#privateObjectStore">Private Object Store</a></p></li></ul></div></div></td><td><p>A reference to the object store to use. If not defined, the runtime's default partition is used.</p></td><td></td><td></td></tr></tbody></table>

#### Output

<table><colgroup><col> <col></colgroup><tbody><tr><td><p>Type</p></td><td><p>Void</p></td></tr></tbody></table>

#### Throws

- OS:STORE\_NOT\_AVAILABLE

### Contains

`<os:contains>`

Checks if there is any value associated to the given key. If no value exists for the key, then false
is returned.

This operation is synchronized at the key level. No other operation can access the same key on the
same object store while this operation is running. If the runtime is running in cluster mode, this
synchronization is also guaranteed across nodes.

#### Parameters

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Name</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Key</p></td><td><div><div><p>String</p></div></div></td><td><p>The key of the object to be checked.</p></td><td></td><td><p>x</p></td></tr><tr><td><p>Object Store</p></td><td><div><div><p>One of:</p></div><div><ul><li><p><a href="#objectStore">Object Store</a></p></li><li><p><a href="#objectStorev2">Object Store (Object Store v2)</a></p></li><li><p><a href="#privateObjectStore">Private Object Store</a></p></li></ul></div></div></td><td><p>A reference to the object store to use. If not defined, the runtime's default partition is used.</p></td><td></td><td></td></tr><tr><td><p>Target Variable</p></td><td><div><div><p>String</p></div></div></td><td><p>The name of a variable to store the operation's output.</p></td><td></td><td></td></tr><tr><td><p>Target Value</p></td><td><div><div><p>String</p></div></div></td><td><p>An expression to evaluate against the operation's output and store the expression outcome in the target variable.</p></td><td><p><code>#[payload]</code></p></td><td></td></tr></tbody></table>

#### Output

<table><colgroup><col> <col></colgroup><tbody><tr><td><p>Type</p></td><td><p>Boolean</p></td></tr></tbody></table>

#### Throws

- OS:INVALID\_KEY

- OS:STORE\_NOT\_AVAILABLE

### Remove

`<os:remove>`

Removes the value associated to the given key. If no value exists for the key, then an
OS:KEY\_NOT\_FOUND error is thrown.

This operation is synchronized on the key level. No other operation is able to access the same key
on the same object store while this operation is running.

If the runtime is running in cluster mode, this synchronization is also guaranteed across nodes.

#### Parameters

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Name</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Key</p></td><td><div><div><p>String</p></div></div></td><td><p>The key of the object to be removed.</p></td><td></td><td><p>x</p></td></tr><tr><td><p>Object Store</p></td><td><div><div><p>One of:</p></div><div><ul><li><p><a href="#objectStore">Object Store</a></p></li><li><p><a href="#objectStorev2">Object Store (Object Store v2)</a></p></li><li><p><a href="#privateObjectStore">Private Object Store</a></p></li></ul></div></div></td><td><p>A reference to the object store to use. If not defined, the runtime's default partition will be used.</p></td><td></td><td></td></tr></tbody></table>

#### Output

<table><colgroup><col> <col></colgroup><tbody><tr><td><p>Type</p></td><td><p>Void</p></td></tr></tbody></table>

#### Throws

- OS:INVALID\_KEY

- OS:STORE\_NOT\_AVAILABLE

- OS:KEY\_NOT\_FOUND

### Retrieve

`<os:retrieve>`

Retrieves the value stored for the given key. If no value exists for the key, behavior depends on
the defaultValue parameter.

If the parameter was not provided or was resolved to a null value, then an OS:KEY\_NOT\_FOUND error
is thrown. Otherwise, the defaultValue is returned, but that value is not stored.

Finally, this operation is synchronized on the key level. No other operation can access the same key
on the same object store while this operation is running. If the runtime is running in cluster mode,
this synchronization is also guaranteed across nodes.

#### Parameters

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Name</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Key</p></td><td><div><div><p>String</p></div></div></td><td><p>The key of the value to be retrieved.</p></td><td></td><td><p>x</p></td></tr><tr><td><p>Default Value</p></td><td><div><div><p>Any</p></div></div></td><td><p>Value to be returned if the key doesn't exist in the store.</p></td><td></td><td></td></tr><tr><td><p>Object Store</p></td><td><div><div><p>One of:</p></div><div><ul><li><p><a href="#objectStore">Object Store</a></p></li><li><p><a href="#objectStorev2">Object Store (Object Store v2)</a></p></li><li><p><a href="#privateObjectStore">Private Object Store</a></p></li></ul></div></div></td><td><p>A reference to the object store to use. If not defined, the runtime's default partition is used.</p></td><td></td><td></td></tr><tr><td><p>Target Variable</p></td><td><div><div><p>String</p></div></div></td><td><p>The name of a variable to store the operation's output.</p></td><td></td><td></td></tr><tr><td><p>Target Value</p></td><td><div><div><p>String</p></div></div></td><td><p>An expression to evaluate against the operation's output and store the expression outcome in the target variable.</p></td><td><p><code>#[payload]</code></p></td><td></td></tr></tbody></table>

#### Output

<table><colgroup><col> <col></colgroup><tbody><tr><td><p>Type</p></td><td><p>Any</p></td></tr></tbody></table>

#### Throws

- OS:INVALID\_KEY

- OS:KEY\_NOT\_FOUND

- OS:STORE\_NOT\_AVAILABLE

### Retrieve All

`<os:retrieve-all>`

Retrieves all the key value pairs in the object store.

#### Parameters

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Name</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Object Store</p></td><td><div><div><p>One of:</p></div><div><ul><li><p><a href="#objectStore">Object Store</a></p></li><li><p><a href="#objectStorev2">Object Store (Object Store v2)</a></p></li><li><p><a href="#privateObjectStore">Private Object Store</a></p></li></ul></div></div></td><td><p>A reference to the object store to use. If not defined, the runtime's default partition is used.</p></td><td></td><td></td></tr><tr><td><p>Target Variable</p></td><td><div><div><p>String</p></div></div></td><td><p>The name of a variable to store the operation's output.</p></td><td></td><td></td></tr><tr><td><p>Target Value</p></td><td><div><div><p>String</p></div></div></td><td><p>An expression to evaluate against the operation's output and store the expression outcome in the target variable.</p></td><td><p><code>#[payload]</code></p></td><td></td></tr></tbody></table>

#### Output

<table><colgroup><col> <col></colgroup><tbody><tr><td><p>Type</p></td><td><p>Object</p></td></tr></tbody></table>

#### Throws

- OS:STORE\_NOT\_AVAILABLE

### Retrieve All Keys

`<os:retrieve-all-keys>`

Returns a List containing all keys that the object store currently holds values for.

#### Parameters

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Name</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Object Store</p></td><td><div><div><p>One of:</p></div><div><ul><li><p><a href="#objectStore">Object Store</a></p></li><li><p><a href="#objectStorev2">Object Store (Object Store v2)</a></p></li><li><p><a href="#privateObjectStore">Private Object Store</a></p></li></ul></div></div></td><td><p>A reference to the object store to use. If not defined, the runtime's default partition is used.</p></td><td></td><td></td></tr><tr><td><p>Target Variable</p></td><td><div><div><p>String</p></div></div></td><td><p>The name of a variable to store the operation's output.</p></td><td></td><td></td></tr><tr><td><p>Target Value</p></td><td><div><div><p>String</p></div></div></td><td><p>An expression to evaluate against the operation's output and store the expression outcome in the target variable.</p></td><td><p><code>#[payload]</code></p></td><td></td></tr></tbody></table>

#### Output

<table><colgroup><col> <col></colgroup><tbody><tr><td><p>Type</p></td><td><p>Array of String</p></td></tr></tbody></table>

#### Throws

- OS:STORE\_NOT\_AVAILABLE

### Store

`<os:store>`

Stores the given value using the given key. This operation can be used either for storing new values
or updating existing ones, depending on the value of the failIfPresent. When that parameter is set
to `false` (default value), then any pre-existing value associated with that key is overwritten. If
the parameter is set to `true`, then an `OS:KEY_ALREADY_EXISTS` error is thrown instead.

Another important consideration is regarding null values. It is not allowed to store a null value.
However, a common use case is to obtain a value (most likely by evaluating a expression or
transformation), testing the value for not null, storing it if present and doing nothing otherwise.
The `failOnNullValue` parameter simplifies this use case. Setting it to `false` makes the connector
skip null values, which prevents the need to use a `<choice/>` router to check the condition, while
using the default value of `true` makes the connector throw a `NULL_VALUE` error.

Finally, this operation is synchronized on the key level. No other operation can access the same key
on the same object store while this operation is running. If the runtime is running in cluster mode,
this synchronization is also guaranteed across nodes.

Running the same application with store operations across multiple nodes without clustering enabled
might lead to inconsistent results due to the absence of coordinated locking.

#### Parameters

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Name</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Key</p></td><td><div><div><p>String</p></div></div></td><td><p>The key of the value to be stored.</p></td><td></td><td><p>x</p></td></tr><tr><td><p>Value</p></td><td><div><div><p>Any</p></div></div></td><td><div><div><p>The value to be stored. Should not be null if <code>failOnNullValue</code> is set to true.</p></div></div></td><td><div><div><p><code>#[payload]</code></p></div></div></td><td></td></tr><tr><td><p>Fail If Present</p></td><td><div><div><p>Boolean</p></div></div></td><td><p>Whether to fail or update the pre-existing value if the key already exists on the store.</p></td><td><p>false</p></td><td></td></tr><tr><td><p>Fail On Null Value</p></td><td><div><div><p>Boolean</p></div></div></td><td><p>Whether to fail or skip the operation if the value is null.</p></td><td><p>true</p></td><td></td></tr><tr><td><p>Object Store</p></td><td><div><div><p>One of:</p></div><div><ul><li><p><a href="#objectStore">Object Store</a></p></li><li><p><a href="#objectStorev2">Object Store (Object Store v2)</a></p></li><li><p><a href="#privateObjectStore">Private Object Store</a></p></li></ul></div></div></td><td><p>A reference to the object store to use. If not defined, the runtime's default partition is used.</p></td><td></td><td></td></tr></tbody></table>

#### Output

<table><colgroup><col> <col></colgroup><tbody><tr><td><p>Type</p></td><td><p>Void</p></td></tr></tbody></table>

#### Throws

- OS:INVALID\_KEY

- OS:KEY\_ALREADY\_EXISTS

- OS:KEY\_NOT\_FOUND

- OS:NULL\_VALUE

- OS:STORE\_NOT\_AVAILABLE

## Types

### Reconnection

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Field</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Fails Deployment</p></td><td><div><div><p>Boolean</p></div></div></td><td><p>When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy.</p></td><td></td><td></td></tr><tr><td><p>Reconnection Strategy</p></td><td><div><div><ul><li><p><a href="#reconnect">Reconnect</a></p></li><li><p><a href="#reconnect-forever">Reconnect Forever</a></p></li></ul></div></div></td><td><p>The reconnection strategy to use.</p></td><td></td><td></td></tr></tbody></table>

### Reconnect

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Field</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Frequency</p></td><td><div><div><p>Number</p></div></div></td><td><p>How often in milliseconds to reconnect.</p></td><td></td><td></td></tr><tr><td><p>Count</p></td><td><div><div><p>Number</p></div></div></td><td><p>How many reconnection attempts to make.</p></td><td></td><td></td></tr><tr><td><p>blocking</p></td><td><p>Boolean</p></td><td><p>If false, the reconnection strategy runs in a separate, non-blocking thread.</p></td><td><p>true</p></td><td></td></tr></tbody></table>

### Reconnect Forever

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Field</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Frequency</p></td><td><div><div><p>Number</p></div></div></td><td><p>How often in milliseconds to reconnect.</p></td><td></td><td></td></tr><tr><td><p>blocking</p></td><td><p>Boolean</p></td><td><p>If false, the reconnection strategy runs in a separate, non-blocking thread.</p></td><td><p>true</p></td><td></td></tr></tbody></table>

### Object Store

> [!NOTE] These settings do not apply to [Object Store v2](https://docs.mulesoft.com/object-store/).

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Field</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Persistent</p></td><td><div><div><p>Boolean</p></div></div></td><td><p>Whether the store is persistent or transient.</p></td><td><p>true</p></td><td></td></tr><tr><td><p>Max entries</p></td><td><div><div><p>Number</p></div></div></td><td><p>The max number of entries allowed. Exceeding entries are removed when the expiration thread runs. If absent, then the described object store has no size boundaries.</p></td><td></td><td></td></tr><tr><td><p>Entry ttl</p></td><td><div><div><p>Number</p></div></div></td><td><p>The entry timeout. If absent, then the described object store has no time boundaries. If <code>entryTtl</code> is set to a value lower than or equal to zero, then the object store never expires.</p></td><td></td><td></td></tr><tr><td><p>Entry ttl unit</p></td><td><div><div><p>Enumeration, one of:</p></div><div><ul><li><p>NANOSECONDS</p></li><li><p>MICROSECONDS</p></li><li><p>MILLISECONDS</p></li><li><p>SECONDS</p></li><li><p>MINUTES</p></li><li><p>HOURS</p></li><li><p>DAYS</p></li></ul></div></div></td><td><div><div><p>An entry’s time to live (<code>#entryTtl</code>).</p></div></div></td><td><p>SECONDS</p></td><td></td></tr><tr><td><p>Expiration interval</p></td><td><div><div><p>Number</p></div></div></td><td><div><div><p>How frequently the expiration thread should run. The default value is 1 minute.</p></div><div><p>The <code>expirationInterval</code> field requires that the <code>maxEntries</code> or <code>entryTtl</code> fields also be set. If neither is set, then putting a value in <code>Expiration Interval</code> has no effect and the expiration thread does not run. If <code>expirationInterval</code> is set to a value lower than or equal to zero, then the object store never expires.</p></div></div></td><td><p>1</p></td><td></td></tr><tr><td><p>Expiration interval unit</p></td><td><div><div><p>Enumeration, one of:</p></div><div><ul><li><p>NANOSECONDS</p></li><li><p>MICROSECONDS</p></li><li><p>MILLISECONDS</p></li><li><p>SECONDS</p></li><li><p>MINUTES</p></li><li><p>HOURS</p></li><li><p>DAYS</p></li></ul></div></div></td><td><div><div><p>The expiration interval (<code>#expirationInterval</code>).</p></div></div></td><td><p>MINUTES</p></td><td></td></tr><tr><td><p>Configuration Reference</p></td><td><div><div><p><a href="#ObjectStoreConnector">Object Store Connector</a></p></div></div></td><td><div><div><p>A reference to an <code>os:config</code> element used to declare this object store.</p></div><div><p>If not provided, the Mule runtime’s default ObjectStoreManager is used. Setting this parameter is necessary only when you want to use a nondefault object store implementation: for example, if you want to have a store that is backed by Redis or JDBC.</p></div></div></td><td></td><td></td></tr></tbody></table>

### Object Store (Object Store v2)

> [!NOTE] These settings apply only to [Object Store v2](https://docs.mulesoft.com/object-store/).

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Field</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Persistent</p></td><td><div><div><p>Boolean</p></div></div></td><td><p>Whether the store is persistent or transient.</p></td><td><p>true</p></td><td></td></tr><tr><td><p>Max entries</p></td><td><div></div></td><td><p><strong>Not configurable for Object Store v2</strong>.</p><p>The maximum number of entries is unlimited.</p></td><td></td><td></td></tr><tr><td><p>Entry ttl</p></td><td><div><div><p>Number</p></div></div></td><td><div><div><p>The entry timeout.</p></div><div><p>Ignored if the value of <code>expirationInterval</code> is less than or equal to <code>0</code>.</p></div><div><ul><li><p>Minimum value: 1 second</p></li><li><p>Maximum value: 30 days</p></li></ul></div><div><p>Object Store v2 supports two TTL behaviors:</p></div><div><ul><li><p><strong>Rolling TTL</strong>: Each entry access (read or write) extends the expiration timer. This behavior applies only when you omit <code>entryTtl</code> from the configuration (Mule 4.2.1 and later). Entries persist as long as the application accesses them at least once a week.</p></li><li><p><strong>Static TTL</strong>: The system fixes the expiration timer at the moment of the write operation. Reads don’t extend this timer. The system evicts the entry at <code>creation_time + entryTtl</code>.</p></li></ul></div><div><p>If the field contains:</p></div><div><ul><li><p>No value</p><div><ul><li><p>Mule versions 4.2.1 and later: Rolling TTL</p></li><li><p>Mule versions earlier than 4.2.1: Static TTL of 30 days by default</p></li></ul></div></li><li><p>Less than or equal to <code>0</code></p><div><p>TTL is static and set to the maximum value (2592000 seconds/30 days). Reads do not extend the entry’s lifetime.</p></div></li><li><p>Positive number</p><div><p>TTL is static and set to the specified value (between 1 and 2592000 seconds)</p></div></li><li><p>Greater than 30 days</p><div><p>TTL is static and set to the maximum value (2592000 seconds/30 days).</p></div></li></ul></div><div><div data-type="IMPORTANT">Specifying any <code>entryTtl</code> value, including <code>0</code>, configures the store with static TTL. To use rolling TTL, omit the <code>entryTtl</code> field entirely. Adding <code>entryTtl="0"</code> to a configuration that previously omitted the field changes the eviction behavior from rolling to static (30 days from entry creation, regardless of read activity).</div></div><div><p>For information about the rolling and static TTL behavior, see <a href="https://docs.mulesoft.com/object-store/#time-to-live">Time to Live (TTL)</a>.</p></div></div></td><td><p>2592000 seconds (30 days)</p></td><td></td></tr><tr><td><p>Entry ttl unit</p></td><td><div><div><p>Enumeration, one of:</p></div><div><ul><li><p>NANOSECONDS</p></li><li><p>MICROSECONDS</p></li><li><p>MILLISECONDS</p></li><li><p>SECONDS</p></li><li><p>MINUTES</p></li><li><p>HOURS</p></li><li><p>DAYS</p></li></ul></div></div></td><td><div><div><p>The unit for the entry’s time to live (<code>entryTtl</code>).</p></div></div></td><td><p>SECONDS</p></td><td></td></tr><tr><td><p>Expiration interval</p></td><td><div><div><p>Positive number</p></div></div></td><td><div><div><p>How frequently the expiration thread runs.</p></div><div><p>The <code>expirationInterval</code> field requires that the <code>entryTtl</code> field is set; otherwise, it is ignored.</p></div><div><ul><li><p>If <code>expirationInterval</code> is set to a positive value less than the value of <code>entryTtl</code>, the entry expires based on the <code>entryTtl</code> configuration.</p></li><li><p>If <code>expirationInterval</code> is set to a value less than or equal to zero, <code>entryTtl</code> is ignored.</p></li></ul></div></div></td><td><p>1 minute</p></td><td></td></tr><tr><td><p>Expiration interval unit</p></td><td><div><div><p>Enumeration, one of:</p></div><div><ul><li><p>NANOSECONDS</p></li><li><p>MICROSECONDS</p></li><li><p>MILLISECONDS</p></li><li><p>SECONDS</p></li><li><p>MINUTES</p></li><li><p>HOURS</p></li><li><p>DAYS</p></li></ul></div></div></td><td><div><div><p>The expiration interval (<code>expirationInterval</code>).</p></div></div></td><td><p>MINUTES</p></td><td></td></tr><tr><td><p>Configuration Reference</p></td><td><div><div><p><a href="#ObjectStoreConnector">Object Store Connector</a></p></div></div></td><td><div><div><p>A reference to an <code>os:config</code> element used to declare this object store.</p></div><div><p>If not provided, the Mule runtime’s default ObjectStoreManager is used. Setting this parameter is necessary only when you want to use a nondefault object store implementation: for example, if you want to have a store that is backed by Redis or JDBC.</p></div></div></td><td></td><td></td></tr></tbody></table>

### Object Store Connector

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Field</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Config Name</p></td><td><div><div><p>String</p></div></div></td><td></td><td></td><td></td></tr><tr><td><p>Lock Timeout</p></td><td><div><div><p>Number</p></div></div></td><td><p>Timeout for acquiring ObjectStore locks. If not specified, operations wait indefinitely.</p></td><td></td><td></td></tr><tr><td><p>Lock Timeout Unit</p></td><td><div><div><p>Enumeration, one of:</p></div><div><ul><li><p>NANOSECONDS</p></li><li><p>MICROSECONDS</p></li><li><p>MILLISECONDS</p></li><li><p>SECONDS</p></li><li><p>MINUTES</p></li><li><p>HOURS</p></li><li><p>DAYS</p></li></ul></div></div></td><td><p>Time unit for the lock timeout parameter.</p></td><td><p>SECONDS</p></td><td></td></tr></tbody></table>

### Private Object Store

> [!NOTE] These settings do not apply to [Object Store v2](https://docs.mulesoft.com/object-store/).

<table><colgroup><col> <col> <col> <col> <col></colgroup><thead><tr><th>Field</th><th>Type</th><th>Description</th><th>Default Value</th><th>Required</th></tr></thead><tbody><tr><td><p>Alias</p></td><td><div><div><p>String</p></div></div></td><td><p>A friendly name to refer to this store in the management user interface. Provide this alias if you would like it to be easier to identify this store. If not provided, Mule auto generates an ID. Use an alias for consistent OAuth token refresh behavior. Without an alias, each Mule app node creates its own partition. This can lead to issues with OAuth token refresh, as each node might try to refresh the token independently.</p><p>By providing an alias, you make sure that the Mule app uses the same partition across restarts. As long as the cached key or value is not expired, the caching scope is hit, and the Mule app continues to use the same token. This prevents unnecessary token refreshes and improves application efficiency.</p></td><td></td><td></td></tr><tr><td><p>Persistent</p></td><td><div><div><p>Boolean</p></div></div></td><td><p>Whether the store is persistent or transient.</p></td><td><p>true</p></td><td></td></tr><tr><td><p>Max entries</p></td><td><div><div><p>Number</p></div></div></td><td><p>The maximum number of entries allowed. Exceeding entries are removed when the expiration thread runs. If absent, then the described object store has no size boundaries.</p></td><td></td><td></td></tr><tr><td><p>Entry ttl</p></td><td><div><div><p>Number</p></div></div></td><td><p>The entry timeout. If absent, then the described object store has no time boundaries.</p></td><td></td><td></td></tr><tr><td><p>Entry ttl unit</p></td><td><div><div><p>Enumeration, one of:</p></div><div><ul><li><p>NANOSECONDS</p></li><li><p>MICROSECONDS</p></li><li><p>MILLISECONDS</p></li><li><p>SECONDS</p></li><li><p>MINUTES</p></li><li><p>HOURS</p></li><li><p>DAYS</p></li></ul></div></div></td><td><div><div><p>An entry’s time to live (<code>#entryTtl</code>).</p></div></div></td><td><p>SECONDS</p></td><td></td></tr><tr><td><p>Expiration interval</p></td><td><div><div><p>Number</p></div></div></td><td><p>How frequently the expiration thread should run. The default value is 1 minute.</p><p>The <code>expirationInterval</code> field requires that the <code>maxEntries</code> or <code>entryTtl</code> fields also be set. If neither is set, then putting a value in <code>expirationInterval</code> has no effect and the expiration thread does not run. If <code>expirationInterval</code> is set to a value lower than or equal to zero, then the object store never expires.</p></td><td><p>1</p></td><td></td></tr><tr><td><p>Expiration interval unit</p></td><td><div><div><p>Enumeration, one of:</p></div><div><ul><li><p>NANOSECONDS</p></li><li><p>MICROSECONDS</p></li><li><p>MILLISECONDS</p></li><li><p>SECONDS</p></li><li><p>MINUTES</p></li><li><p>HOURS</p></li><li><p>DAYS</p></li></ul></div></div></td><td><div><div><p>The expiration interval (<code>#expirationInterval</code>).</p></div></div></td><td><p>MINUTES</p></td><td></td></tr><tr><td><p>Configuration Reference</p></td><td><div><div><p><a href="#ObjectStoreConnector">Object Store Connector</a></p></div></div></td><td><div><div><p>A reference to an <code>os:config</code> element which is used to declare this object store.</p></div><div><p>If not provided, the Mule runtime’s default ObjectStoreManager is used. Setting this parameter is necessary only when you want to use a nondefault object store implementation: for example, if you want to have a store that is backed by Redis or JDBC.</p></div></div></td><td></td><td></td></tr></tbody></table>

## See Also

- [Salesforce Help](https://help.salesforce.com)
