hana-developer-cli-tool-example connection-pooling-timeout-management.instructions.md

A set of coding rules for managing database connections, including time limits, connection cleanup, error handling, and connection pools. A connection pool keeps reusable database connections available for an application.

In plain words
What is it for?
Use it when creating or changing database connections in command-line tools, web routes, or tests, including HANA, PostgreSQL, and SQLite code.
Why use it?
It helps prevent stuck connections, inconsistent timeouts, leaked resources, and failures that terminate the whole process unnecessarily.

Instructions file for GitHub Copilot

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/sap-samples/hana-developer-cli-tool-example/connection-pooling-timeout-management
Clone the repo
git clone --depth 1 https://github.com/SAP-samples/hana-developer-cli-tool-example

Made for: GitHub Copilot.

Per session 3,452 This file is loaded in full into every session.
When invoked 3,452 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.03452 $0.03452
Opus 5 $0.01726 $0.01726
Sonnet 5 $0.00690 $0.00690
Haiku 4.5 $0.00345 $0.00345

Measured 2d ago against content hash 16c44df27433, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

hana-developer-cli-tool-example connection-pooling-timeout-management.instructions.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.github/instructions/connection-pooling-timeout-management.instructions.md · 506 lines

How it starts

The opening of the file, as written. The whole thing — 506 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Database Connection Pooling and Timeout Management Guidelines

Use this guide when creating or modifying code that establishes, manages, or disconnects database connections. This applies to CLI commands (bin/), API routes (routes/), and tests (tests/).

Scope and Purpose

This guide establishes standards for:

  • Configurable timeout values (connection, query, operation, disconnect)
  • Graceful connection lifecycle management (establishment, usage, cleanup)
  • Error handling and recovery patterns
  • Connection pooling best practices
  • Multi-database support (HANA, PostgreSQL, SQLite)

Critical Principles

  1. No Hard-Coded Timeouts: All timeout values must be configurable via environment, constructor, or options parameters. Default values are acceptable; hard-coded values are not.

  2. Proper Cleanup in All Paths: Connections must be explicitly closed/disconnected in success, error, and timeout scenarios. Use try/finally blocks to guarantee cleanup.

  3. Graceful Degradation on Timeout: Don't kill the entire process (process.exit()) on operation timeouts. Instead, throw an exception that can be caught and handled appropriately by the caller or error middleware.

  4. Connection Establishment Timeout: Explicitly set a timeout for creating new connections to prevent indefinite hangs if the database is unreachable or unresponsive.

  5. Distinct Timeout Layers: Implement timeouts at three levels:

    • Connection timeout (establishing the connection)
    • Query/operation timeout (executing a single query or operation)
    • Overall operation timeout (entire command/route processing)
  6. Retry Logic for Transient Failures: Implement exponential backoff for connection failures due to transient network issues, not permanent failures (authentication, invalid connection details).

  7. Resource Cleanup on Exit: Ensure database connections are properly disconnected before CLI exit, web server shutdown, or test suite completion.

  8. Connection State Transparency: Track and expose connection states (connecting, connected, executing, disconnecting) for debugging and monitoring.

Read the full file on GitHub · 506 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 506 lines · 3,452 tokens per session scan A 16c44df27433

Subscribe to this mod's changes

hana-developer-cli-tool-example connection-pooling-timeout-management.instructions.md is an instructions file published in the GitHub repository SAP-samples/hana-developer-cli-tool-example (109 stars, last pushed 7d ago), licensed Apache-2.0. It adds 3,452 tokens to every session, about $0.0173 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.