# Class TransactionPingingPool (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

    TransactionPingingPool(
        size=10, default_timeout=10, ping_interval=3000, labels=None, database_role=None
    )

Concrete session pool implementation:

Deprecated: TransactionPingingPool no longer begins a transaction for each of its sessions at startup.
Hence the TransactionPingingPool is same as `PingingPool` and maybe removed in the future.

In addition to the features of `PingingPool`, this class
creates and begins a transaction for each of its sessions at startup.

When a session is returned to the pool, if its transaction has been
committed or rolled back, the pool creates a new transaction for the
session and pushes the transaction onto a separate queue of "transactions
to begin." The application is responsible for flushing this queue
as appropriate via the pool's `begin_pending_transactions` method.

| ## Parameters ||
|---|---|
| **Name** | **Description** |
| `size` | `int` fixed pool size |
| `default_timeout` | `int` default timeout, in seconds, to wait for a returned session. |
| `ping_interval` | `int` interval at which to ping sessions. |
| `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. |

## Methods

### TransactionPingingPool

    TransactionPingingPool(
        size=10, default_timeout=10, ping_interval=3000, labels=None, database_role=None
    )

This throws a deprecation warning on initialization.

### begin_pending_transactions

    begin_pending_transactions()

Begin all transactions for sessions added to the pool.

### 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. |

### put

    put(session)

Return a session to the pool.

Never blocks: if the pool is full, raises.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `session` | `https://docs.cloud.google.com/python/docs/reference/spanner/latest/google.cloud.spanner_v1.session.Session` the session being returned. |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `` `queue.Full `` | if the queue is full. |