Postgres + JDBC模板太多客户端已经异常

时间:2016-11-23 04:08:50

标签: java postgresql rest jdbctemplate

我正在使用postgresql但是我在从数据库中的表中获取记录时已经收到此异常FATAL: sorry, too many clients

Fallow是连接类:

<context:component-scan base-package="com.trinity" />
      <context:property-placeholder location="classpath:/jdbc.properties" order="1" ignore-unresolvable="true"/>   
      <beans:bean id="dataSourcePOSTGRESQL" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
        <beans:property name="driverClassName" value="${pg_jdbc.driverClassName}" />
        <beans:property name="url" value="${pg_jdbc.url}" />
        <beans:property name="username" value="${pg_jdbc.username}" />
        <beans:property name="password" value="${pg_jdbc.password}" /> 
    </beans:bean>  

jdbc.propertis

pg_jdbc.driverClassName=org.postgresql.Driver
pg_jdbc1.url1=jdbc:postgresql://localhost:5433/iotdb
pg_jdbc.username=postgres
pg_jdbc.password=track@123
道上课:

public List<Map<String, Object>> getAllDevicesNames(Integer companyId) {

    String sql = "select device_configuration_id,device_name,device_id from iot.device_configuration where company_id = ? ";
    List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql,new Object[]{companyId});
    return queryForList;

}

2 个答案:

答案 0 :(得分:1)

以前在我的postgres.cfg文件中

max_connections = 100
shared_buffers = 128kb

现在,我改为

max_connections = 300
shared_buffers = 80MB

工作正常。

答案 1 :(得分:0)

使用此查询查找连接数:

SELECT sum(numbackends) FROM pg_stat_database;

标准的100 max数据库连接服务器可以与数据库服务器一起使用可能不足以进行生产使用。要在Linux设置中增加此Postgres默认值,您可以按照以下步骤操作:

in

/var/lib/pgsql/data/postgresql.conf

你会发现这两个设置 分别为100,24 MB。您可以将它们更改为以下内容:

max_connections = 300
shared_buffers = 80MB