[pgpool-general: 9322] pgpool setup throws "Unable to acquire JDBC Connection" Errors

Sbob sbob at quadratum-braccas.com
Fri Jan 17 14:19:16 JST 2025






All;


I have setup 2 HOT standby's off a Primary PostgreSQL instance,

then I setup pgpool on another server with a config that points pgpool 
only at the 2 standby's for read only load balancing


The pgpool config is below, which includes a max_pool of 4 (default) and 
num_init_children = 300


The backend hot standby's have max_connections = 2000



########## pgpool config #############

#
# Ansible managed
#
backend_clustering_mode = 'streaming_replication'
listen_addresses = '*'
port = 5432

unix_socket_directories = '/run/pgpool-II'
pcp_socket_dir = '/tmp'

backend_hostname0 = '***********'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/var/lib/pgsql/14/data'
backend_flag0 = 'DISALLOW_TO_FAILOVER'
backend_application_name0 = 'Standby001'

backend_hostname1 = '************'
backend_weight1 = 1
backend_data_directory1 = '/var/lib/pgsql/14/data'
backend_flag1 = 'DISALLOW_TO_FAILOVER'
backend_application_name1 = 'primaryData1'


enable_pool_hba = off
pool_passwd = ''
allow_clear_text_frontend_auth = on
log_destination = 'stderr'
log_connections = off
log_disconnections = off
log_hostname = off
log_statement = off
logging_collector = on
log_directory = '/tmp/log'
log_filename = 'pgpool-%d.log'
log_truncate_on_rotation = on
log_rotation_size = 0
pid_file_name = '/tmp//pgpool.pid'
logdir = '/tmp/log'
load_balance_mode = on
ignore_leading_white_space = on
sr_check_period = 10
sr_check_user = 'postgres'
sr_check_database = 'postgres'
health_check_period = 5
health_check_timeout = 20
health_check_user = 'postgres'
health_check_password = ''
health_check_user0 = 'postgres'
failover_on_backend_shutdown = on

num_init_children = 300



However when the app team runs thier java apps, which include 18 pods 
and each pod can use multiple connections, every pod uses below configs 
(min = 1, max = 50)

so in theory a max of 900 connections.

they keep getting these errors, see below


Thanks in advance for any help



########## java output log ####################

org.springframework.dao.DataAccessResourceFailureException: Unable to 
acquire JDBC Connection; nested exception is 
org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC 
Connection

  at 
org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:255)

  at 
org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:233)

  at 
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551)

  at 
org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)

  at 
org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)

  at 
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)

  at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

  at 
org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145)

  at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

  at 
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)

  at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

  at 
io.opentelemetry.javaagent.instrumentation.spring.data.v1_8.SpringDataInstrumentationModule$RepositoryInterceptor.invoke(SpringDataInstrumentationModule.java:111)

  at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

  at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)

  at com.sun.proxy.$Proxy264.fetchCmsContractIdFromOds(Unknown Source)

  at 
com.rxtransaction.claims.planfinder.service.impl.PriceFileRequestBuildProcessServiceImpl.benefitPackageInfo(PriceFileRequestBuildProcessServiceImpl.java:393)

  at 
com.rxtransaction.claims.planfinder.service.impl.PriceFileRequestBuildProcessServiceImpl.continueProcessRequest(PriceFileRequestBuildProcessServiceImpl.java:206)

  at 
com.rxtransaction.claims.planfinder.service.batch.steps.CustomNdcItemReader.getPriceFileData(CustomNdcItemReader.java:257)

  at com.rxtransaction.



More information about the pgpool-general mailing list