# Discovery configuration

This page describes configuration options for Discovery clients: Liberator, Transformer, and integration adapters.

## discovery-addr

Specifies the network location of a Discovery server.

**💡 TIP**\
The DataSource applications Liberator, Transformer, and TREP Adapter include configuration blades that you can use to enable a connection to a Discovery server when the DataSource is deployed to a Deployment Framework. The blades reference the configuration variable `DISCOVERY_ADDR`, which you can override in `global_config/environment.conf`.

When `discovery-addr` is specified, the DataSource operates in 'Discovery mode' and the following changes in behaviour apply:

* If the DataSource requires a licence and has been provided with an expired licence file, then the DataSource does not attempt to connect to Discovery and exits immediately.
* The DataSource attempts to connect to Discovery at the given address and optional port.
* If the Discovery server is offline, the DataSource polls the Discovery server until it becomes available.
* If the DataSource requires a licence and has not been provided with a licence file, the DataSource does not accept network connections until it has successfully connected with Discovery. Examples of DataSources that require a licence are Liberator, Transformer, and the TREP Adapter.
* If the Discovery server rejects the DataSource’s connection, the DataSource shuts down. The Discovery server may reject the DataSource’s connection for any of the reasons below:
  * The Discovery server’s cluster name does not match the DataSource’s configured Discovery cluster name ([`discovery-cluster-name`](#discovery-cluster-name)). The default cluster name is `caplin-platform`.
  * The Discovery server’s licence has expired.
  * The DataSource is subject to an instance quota in the Discovery licence, and to accept the DataSource’s connection would exceed the quota.
* If the DataSource’s configuration includes a [data service](datasource-data-services.md) that uses [`remote-label`](datasource-data-services-configuration.md#remote-label) to specify the labels of providing peers, then the DataSource logs an error and shuts down. In Discovery deployments, use `remote-label-regex` to specify the labels of a data service’s providing peers. 

**Since**

DataSource for Java 7.1.15, DataSource for C (DSDK) 7.1.21, Liberator 7.1.21, Transformer 7.1.13

**Syntax**

```
discovery-addr __addr__ [__port__ …​]
```

**Parameters**

| Parameter | Description | Type | Example |
| --- | --- | --- | --- |
| addr | IP address or hostname | String | 192.168.1.150 |
| port | TCP/IP port number, 1–65535 | Integer | 5701 |

**Default setting**

None

**Example**

```
discovery-addr 192.168.1.150
```

## discovery-cluster-name

The name of the Discovery cluster to connect to at [`discovery-addr`](#discovery-addr). Defaults to `caplin-platform`.

If Discovery server at [`discovery-addr`](#discovery-addr) has a different cluster name to `discovery-cluster-name`, then the DataSource logs an error and shuts down.

For information on how to set the name of a Discovery cluster, see [hazelcast.cluster-name](../discovery/discovery-server-configuration.md#hazelcast-cluster-name) in the Discovery documentation.

**Since**

DataSource for Java 7.1.15, DataSource for C (DSDK) 7.1.21, Liberator 7.1.21, Transformer 7.1.13

**Syntax**

```
discovery-cluster-name __name__
```

| Parameter | Description | Type | Example |
| --- | --- | --- | --- |
| name | The name of the Discovery cluster | String | caplin-platform-test |

**Default setting**

```
discovery-cluster-name "caplin-platform"
```

**Example**

```
discovery-cluster-name "caplin-platform-test"
```

## discovery-provide-service

Specifies one or more names of [data services](datasource-data-services.md) that this DataSource _provides_. It is the complement of the data service [`service-name`](datasource-data-services-configuration.md#service-name) option, which identifies a data service that this DataSource _consumes_.

When a DataSource connects to a Discovery server, the DataSource submits a list of the data services it consumes and a list of the data services it provides. Discovery broadcasts this information to all clients as part of a global list of consumers and providers.

Discovery-enabled DataSources manage peer configuration automatically and dynamically, based on the information broadcast by Discovery:

* A DataSource automatically connects to consumers of the data services it provides
* A DataSource automatically permits incoming connections from providers of the data services it consumes.

**Since**

DataSource for Java 7.1.15, DataSource for C (DSDK) 7.1.21, Liberator 7.1.21, Transformer 7.1.13

**Syntax**

```
discovery-provide-service __service_name__ …​
```

**Parameters**

| Parameter | Description | Type | Example |
| --- | --- | --- | --- |
| service_name | The name of a service provided by this DataSource | String | pricing |

**Default setting**

None

**Example**

```
discovery-provide-service pricing trading
```

---

**See also**:

* [datasrc-public-addresses](datasource-datasource-peers-configuration-part-2.md#datasrc-public-addresses)
* [datasrc-interface](datasource-datasource-peers-configuration-part-2.md#datasrc-interface)
