Приложение Spring Boot 3.4 не уважает предел пула подключений Hikari MaxJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Приложение Spring Boot 3.4 не уважает предел пула подключений Hikari Max

Сообщение Anonymous »

Мы настроили Хикари с максимум 24 подключения. Однако в нашем Oracle DB мы наблюдаем более 100 активных соединений на капсул. Наша настройка - Spring Boot с Kafka (Confluent) с использованием параллельного потребителя, с одновременным, установленным в 12. Кроме того, у нас есть механизм повторной попытки, настроенный (максимум 3 попытки) в рамках транзакционного метода. < /P>
, когда мы регистрируем статус Conn Каждые 30 секунд из данных Hikari, всегда показывают правильное значение. Однако в Oracle DB он показывает другое.hikari:
# === Pool Size Settings ===
maximum-pool-size: ${HIKARI_MAXIMUM_POOL_SIZE:24} # Maximum number of connections in the pool
minimum-idle: ${HIKARI_MINMUM_IDLE:6} # Minimum number of idle connections to maintain

# === Timeout Settings ===
connection-timeout: ${HIKARI_CONNECTION_TIMEOUT:10000} # Max time (10s) to wait for connection from pool
max-lifetime: ${HIKARI_MAX_LIFETIME:1800000} # Max lifetime (30min) of connection in pool
idle-timeout: ${HIKARI_IDLE_TIMEOUT:600000} # Max time (10min) connection can sit idle
validation-timeout: ${HIKARI_VALIDATION_TIMEOUT:3000} # Max time (3s) to wait for connection validation
leak-detection-threshold: ${HIKARI_LEAK_DETECTION_THRESHOLD:300000} # Time (5min) after which connection is considered leaked
auto-commit: ${HIKARI_AUTO_COMMIT:false}
pool-status-logging: ${HIKARI_POOL_STATUS_LOGGING:false}
# === Oracle-Specific Properties ===
data-source-properties:
# Connection validation method (LOCAL = client-side validation)
oracle.jdbc.defaultConnectionValidation: LOCAL

# Socket read timeout - max time to wait for data from Oracle server
oracle.jdbc.ReadTimeout: ${ORACLE_JDBC_READTIMEOUT:45000} # 45 seconds

# TCP connection timeout - max time to establish connection to Oracle
oracle.net.CONNECT_TIMEOUT: ${ORACLE_NET_CONNECT_TIMEOUT:10000} # 10 seconds

# Database login timeout - max time to authenticate with Oracle
oracle.jdbc.loginTimeout: ${ORACLE_JDBC_LOGIN_TIMEOUT:10} # 10 seconds

# Add query timeout to prevent long-running statements
oracle.jdbc.queryTimeout: ${ORACLE_JDBC_QUERY_TIMEOUT:40} # 40 seconds for individual SQL statements

# Prevent network drops
oracle.net.keepAlive: ${ORACLE_NET_KEEPALIVE:true}

# Set custom identifiers in Oracle v$session to distinguish HikariCP connections from other sources
oracle.jdbc.v$session.program: "HIKARI-POOL"
oracle.jdbc.v$session.osuser: "HIKARI"


Подробнее здесь: https://stackoverflow.com/questions/797 ... pool-limit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»