---
name: "Search::Elasticsearch::Role::CxnPool"
section: "3pm"
platform: "linux"
package: "libsearch-elasticsearch-perl"
version: "8.12-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Search::Elasticsearch::Role::CxnPool"
---

# Search::Elasticsearch::Role::CxnPool(3pm)

Provides common functionality to the CxnPool implementations

## NAME

Search::Elasticsearch::Role::CxnPool - Provides common functionality to the CxnPool implementations

## VERSION

version 8.12

## DESCRIPTION

See the CxnPool implementations:

- •

  Search::Elasticsearch::CxnPool::Static

- •

  Search::Elasticsearch::CxnPool::Sniff

- •

  Search::Elasticsearch::CxnPool::Static::NoPing

## CONFIGURATION

These configuration options should not be set by the user but are documented here for completeness.

### "randomize\_cxns"

By default, the order of cxns passed to "**set\_cxns()**" is randomized before they are stored.  Set `"randomize_cxns"` to a false value to disable.

## METHODS

### cxn\_factory()

```
    $factory = $cxn_pool->cxn_factory
```

Returns the Search::Elasticsearch::Cxn::Factory object for creating a new `$cxn` instance.

### logger()

```
    $logger = $cxn_pool->logger
```

Returns the Search::Elasticsearch::Role::Logger-based object, which defaults to Search::Elasticsearch::Logger::LogAny.

### serializer()

```
    $serializer = $cxn_pool->serializer
```

Returns the Search::Elasticsearch::Role::Serializer-based object, which defaults to Search::Elasticsearch::Serializer::JSON.

### current\_cxn\_num()

```
    $num = $cxn_pool->current_cxn_num
```

Returns the current cxn number, which is an offset into the array of cxns set by "**set\_cxns()**".

### cxns()

```
    \@cxns = $cxn_pool->cxns;
```

Returns the current list of Search::Elasticsearch::Role::Cxn-based cxn objects as set by "**set\_cxns()**".

### seed\_nodes()

```
    \@seed_nodes = $cxn_pool->seed_nodes
```

Returns the list of `"nodes"` originally specified when calling "**new()**" in Search::Elasticsearch.

### next\_cxn\_num()

```
    $num = $cxn_pool->next_cxn_num;
```

Returns the number of the next connection, in round-robin fashion.  Updates the "**current\_cxn\_num()**".

### set\_cxns()

```
    $cxn_pool->set_cxns(@nodes);
```

Takes a list of nodes, converts them into Search::Elasticsearch::Role::Cxn-based objects and makes them accessible via "**cxns()**".

### request\_ok()

```
    $cxn_pool->request_ok($cxn);
```

Called when a request by the specified `$cxn` object has completed successfully. Marks the `$cxn` as live.

### request\_failed()

```
    $should_retry = $cxn_pool->request_failed($cxn,$error);
```

Called when a request by the specified `$cxn` object has failed. Returns `1` if the request should be retried or `0` if it shouldn't.

### should\_retry()

```
    $bool = $cxn_pool->should_retry($error);
```

Examines the error to decide whether the request should be retried or not. By default, only "Search::Elasticsearch::Error::Cxn" in Search::Elasticsearch::Error errors are retried.

### should\_mark\_dead()

```
    $bool = $cxn_pool->should_mark_dead($error);
```

Examines the error to decide whether the `$cxn` should be marked as dead or not. By default, only "Search::Elasticsearch::Error::Cxn" in Search::Elasticsearch::Error errors cause a `$cxn` to be marked as dead.

### cxns\_str()

```
    $str = $cxn_pool->cxns_str
```

Returns all "**cxns()**" as a string for logging purposes.

### cxns\_seeds\_str()

```
    $str = $cxn_pool->cxns_seeeds_str
```

Returns all "**cxns()**" and "**seed\_nodes()**" as a string for logging purposes.

### retries()

```
    $retries = $cxn_pool->retries
```

The number of times the current request has been retried.

### reset\_retries()

```
    $cxn_pool->reset_retries;
```

Called at the start of a new request to reset the retries count.

## AUTHOR

Enrico Zimuel \<enrico.zimuel@elastic.co\>

## COPYRIGHT AND LICENSE

This software is Copyright (c) 2024 by Elasticsearch BV.

This is free software, licensed under:

```
  The Apache License, Version 2.0, January 2004
```
