Concorrência é uma cadeia de limites
O número de pedidos aceites, threads de execução e ligações a dependências não tem de ser igual. Um pedido pode ocupar uma thread enquanto espera por uma ligação JDBC ou uma resposta externa. Se a dependência fica lenta, as threads permanecem ocupadas durante mais tempo e a fila cresce. Observa ocupação, espera, duração e taxa de chegada em conjunto.
Timeout do pool não identifica a causa
Uma espera por ligação pode resultar de procura excessiva, transações longas, ligações não devolvidas, limite inadequado ou lentidão da base de dados. Aumentar o pool aumenta a concorrência possível sobre a dependência e pode exceder a sua capacidade. Recolhe métricas de pool, logs, estados de threads e evidência da base de dados no mesmo período. Distingue obter uma ligação de executar uma query com essa ligação.
Dimensionar com medições
Em regime estável, uma aproximação útil é concorrência média ≈ taxa de conclusão × tempo médio no sistema. Se 40 pedidos por segundo passam de 0,2 para 2 segundos, o trabalho médio em curso passa aproximadamente de 8 para 80, sem aumentar a taxa. A conta não substitui testes ou limites específicos, mas ajuda a explicar por que a lentidão cria pressão sobre pools. Usa carga representativa e critérios de qualidade para validar ajustes.
Aplicação no trabalho
Numa regressão após release, compara duração de posse das ligações e taxa de pedidos antes de aumentar limites. Uma query dez vezes mais lenta pode ocupar recursos por mais tempo mesmo sem crescer a procura. A configuração Open Liberty apresentada nas fontes é específica desse runtime; confirma os nomes e a ativação em WebSphere traditional. O ajuste deve respeitar a capacidade da dependência e ser validado com carga representativa.
O pool JDBC esgota-se, mas a base de dados mostra transações demoradas após uma alteração de query. Aumentar de 50 para 200 ligações pode multiplicar a pressão. Investiga a regressão e a duração de retenção das ligações antes de alterar o limite.
Armadilhas comuns
Aumentar pools sem medir retenção ou capacidade da base de dados.
Tópicos relacionados: Operar TLS, certificados e configuração · Gerir filas, confirmações e repetição
Um pool esgotado pode ser consequência de lentidão; mais concorrência não equivale a mais capacidade.
Referência: Connection manager configuration · DR Middleware 2026.4; HotSpot JDK 25; JDBC 25; PostgreSQL 18; RabbitMQ 4.3; OpenSSL 3.5; explicitly scoped runtime references