Galera,
Temos uma aplicação com vários clientes e atualmente usamos um classe onde anotamos todos os EntityManager’s.
Nessa aplicação, usamos EJB e JPA com eclipseLink.
Por exemplo:
@Stateless
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
public class ConexaoManager {
@PersistenceContext(unitName = "conexao1")
private EntityManager conexao1;
@PersistenceContext(unitName = "conexao2")
private EntityManager conexao2;
@PersistenceContext(unitName = "conexao3")
private EntityManager conexao3;
public EntityManager getEntityManager(final String idConexao) {
if (Domain.CONEXAO1.equals(idConexao)) {
return this.conexao1;
} else if (Domain.CONEXAO2.equals(idConexao) {
return this.conexao2;
} else if (Domain.CONEXAO3.equals(idConexao) {
return this.conexao3;
}
return conexao1;
}
}
Só que se essa lista de clientes crescer, acredito que o consumo de memória irá aumentar radicamente.
Sobre isso, tenho algumas dúvidas.
Se o uso de memória vai realmente aumentar a cada novo cliente.
Existe outras formas, pensando num crescimente de clientes, para ser usado e que o consumo de memória não sofra tanto?