# Class AbstractSessionPool (3.68.0)

3.68.0 (latest) 3.67.0 3.66.0 3.65.0 3.64.0 3.63.0 3.62.0 3.61.0 3.60.0 3.59.0 3.58.0 3.57.0 3.56.0 3.55.0 3.54.0 3.53.0 3.52.0 3.51.0 3.50.1 3.46.0 3.45.0 3.44.0 3.43.0 3.42.0 3.41.0 3.40.1 3.39.0 3.38.0 3.37.0 3.36.0 3.35.1 3.34.0 3.33.0 3.32.0 3.31.0 3.30.0 3.29.0 3.28.0 3.27.1 3.26.0 3.25.0 3.24.0 3.23.0 3.22.2 3.21.0 3.20.0 3.19.0 3.18.0 3.17.0 3.16.0 3.15.1 3.14.1 3.13.0 3.12.1 3.11.1 3.10.0 3.9.0 3.8.0 3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.0 3.1.0 3.0.0 2.1.1 2.0.0 1.19.3 1.18.0 1.17.1 1.16.0 1.15.1 1.14.0 1.13.0 1.12.0 1.11.0 1.10.0

    AbstractSessionPool(labels=None, database_role=None)

Specifies required API for concrete session pool implementations.

| ## Parameters ||
|---|---|
| **Name** | **Description** |
| `labels` | `dict (str -> str) or None` (Optional) user-assigned labels for sessions created by the pool. |
| `database_role` | `str` (Optional) user-assigned database_role for the session. |

## Properties

### database_role

User-assigned database_role for sessions created by the pool.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `str` | database_role assigned by the user |

### labels

User-assigned labels for sessions created by the pool.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `dict (str -> str)` | labels assigned by the user |

## Methods

### bind

    bind(database)

Associate the pool with a database.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `database` | `https://docs.cloud.google.com/python/docs/reference/spanner/latest/google.cloud.spanner_v1.database.Database` database used by the pool to create sessions when needed. Concrete implementations of this method may pre-fill the pool using the database. |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `NotImplementedError` | abstract method |

### clear

    clear()

Delete all sessions in the pool.

Concrete implementations of this method are allowed to raise an
error to signal that the pool is full, or to block until it is
not full.

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `NotImplementedError` | abstract method |

### get

    get()

Check a session out from the pool.

Concrete implementations of this method are allowed to raise an
error to signal that the pool is exhausted, or to block until a
session is available.

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `NotImplementedError` | abstract method |

### put

    put(session)

Return a session to the pool.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `session` | `https://docs.cloud.google.com/python/docs/reference/spanner/latest/google.cloud.spanner_v1.session.Session` the session being returned. Concrete implementations of this method are allowed to raise an error to signal that the pool is full, or to block until it is not full. |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `NotImplementedError` | abstract method |

### session

    session(**kwargs)

Check out a session from the pool.

Deprecated. Sessions should be checked out indirectly using context
managers or xref_run_in_transaction,
rather than checked out directly from the pool.

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `SessionCheckout` | a checkout instance, to be used as a context manager for accessing the session and returning it to the pool. |