BD POSTGRES - max_connections Erro

27/08/2018

0

Bom dia galera!
Atualmente eu tenho uma plicação JSF + Postgres + WildFly 10
No Postgres, delimitei que max_connections = 500, porem ao atingir o máximo de conexão, sistema para de funcionar por não haver mais conexões disponíveis.

------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#-----------------------------------------------------------------------------

max_connections = 500 # (change requires restart)



Já verifique vários post, porem não consegui resolver essa situação.
Alguém poderia me dispor de uma solução?

Ficaria muito grato!
Thiago Silva

Thiago Silva

Responder

Posts

27/08/2018

Joao Pedro

Você pode utilizar
max_connections = -1
para ter conexões ilimitadas

Já aviso que não é uma boa ideia, até porque sua aplicação não deveria ter esse número absurdo de conexões simultâneas.
Sua aplicação está encerrando a conexão apropriadamente após a execução das querys?
Responder

25/11/2018

Thiago Silva

Você pode utilizar
max_connections = -1
para ter conexões ilimitadas

Já aviso que não é uma boa ideia, até porque sua aplicação não deveria ter esse número absurdo de conexões simultâneas.
Sua aplicação está encerrando a conexão apropriadamente após a execução das querys?



Olá, vou disponibilizar algumas configurações da aplicação:

Segue o GenericDao

public class GenericDAO<T, ID extends Serializable> implements IGenericDAO<T, ID> {

/*
* Configuração do datasource que é extendido ao meu persistence.xml onde existe
* um mecanismo onde vai ler o persistence.xml e vai
*/
/*
* encontrar qual é o meu ""PU"" = PERSISTENCEUNIT e redirenciona para o
* EntityManager - Internamente ele atribui o meu FACTORY ao meu ENTITYMANAGER
*/

/*
* EntityManager é responsável pelas operações de persistência e é feita pela
* classe abstrata EntityManagerFactory
*/
@PersistenceContext(type = PersistenceContextType.TRANSACTION)
private EntityManager entityManager;
// O EntityManager provê APIS para persistis- consultar....

/*
* EntityManagerFactory é uma classe criada pela Percitence , que lê as
* configurações existentes em PERSISTENCE.XML
*/
@SuppressWarnings("unused")
private EntityManagerFactory factory;

public Session getSession() {
return (Session) entityManager.getDelegate();
}

private final Class<T> persistentClass;

@SuppressWarnings("unchecked")
public GenericDAO() {
this.persistentClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass())
.getActualTypeArguments()[0];
}

public GenericDAO(final Class<T> persistentClass) {
super();
this.persistentClass = persistentClass;
}

@Override
public void salvar(T entity) {
try {
getSession().merge(entity);
getSession().flush();
getSession().clear();
} catch (Exception e) {
e.printStackTrace();
}
}

@Override
public void remover(T entity) {
getSession().delete(entity);
getSession().flush();
}

@Override
public void atualizar(T entity) {
try {
getSession().merge(entity);
getSession().flush();
} catch (Exception e) {
e.printStackTrace();
}
}

@Override
public T buscaPorId(Long id) {
final T result = getEntityManager().find(persistentClass, id);
return result;
}

public T buscaPorId(Integer id) {
final T result = getEntityManager().find(persistentClass, id);
return result;
}

@Override
public T buscaPorId(String imageId) {
final T result = getEntityManager().find(persistentClass, imageId);
return result;
}

public Class<T> getPersistentClass() {
return persistentClass;
}

public EntityManager getEntityManager() {
return entityManager;
}

public void setEntityManager(EntityManager em) {
this.entityManager = em;
}

}


A interface generic


public interface IGenericDAO<T, ID extends Serializable> {

public void salvar(T entity);

public void remover(T entity);

public void atualizar(T entity) throws Exception;

public T buscaPorId(Long id);

public T buscaPorId(String imageId);

public T buscaPorId(Integer id);
}


<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="cmehps" transaction-type="JTA">

<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

<jta-data-source>java:jboss/datasources/BSCMEDS</jta-data-source>
<class>entity.Cliente</class>
<class>entity.Etiqueta</class>
<class>entity.InformacaoRevisao</class>
<class>entity.Produto</class>
<class>entity.Profissional</class>
<class>entity.Profissoes</class>
<class>entity.TipoProduto</class>
<class>entity.Usuario</class>

<properties>
<property name="hibernate.dialect"
value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.use_sql_comments" value="true" />
</properties>

</persistence-unit>
</persistence>



<datasource jta="true" jndi-name="java:jboss/datasources/BSCMEDS" pool-name="BDCMEDS" enabled="true" use-ccm="true">
<connection-url>jdbc:postgresql://localhost:5432/bdcme</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgresql</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>postgres</user-name>
<password>???</password>
</security>
</datasource>


Meu Postgresql

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
max_connections = 90000 # (change requires restart)



Por algum motivo o sistema trava e atinge o máximo de conexões com banco.

Como vc poderia me ajudar?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar