BD POSTGRES - max_connections Erro
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!
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
Curtidas 0
Respostas
Joao Pedro
27/08/2018
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?
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?
GOSTEI 0
Thiago Silva
27/08/2018
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?
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?
GOSTEI 0