Pessoal é o seguinte, hj eu tenho o seguinte cenário, meus clientes entram no meu site e aparece a tela de login , onde peço o Grupo do usuario, o Login e Senha.
Para o Grupo eu tenho um banco de dados, onde tem os dados do banco de dados dos usuario ou seja, em qual servidor ele esta alocado o nome etc…
Com isso eu verifico se o grupo existe. Se ele existe eu fecho a conexao do meu Banco de dados do Grupo, que se chama Gestor, e abro a conexao do banco de dados do usuario.
até ai tudo bem , oq eu faco , cada usuario tem seu banco de dados, entao eu abro a conexao do banco de dados do usuario depois de verificado se existe o grupo e gravo em um HTTPSESSION (obs : Gravo o EntityManegerFactory na sessao) , assim toda vez q ele for fazer uma pesquisa eu faco o EntityManager receber esse factory da sessao , quero saber se isso pode deixar o sistema lento, pois o meu java do servidor esta travando, queria saber se e por esse motivo…
//Aqui eu gravo o o banco de dados do cliente na sessao
`public EntityManager getEntityManager(String PU, String Local, String endfdb) {
if (PU.equals("0")) {
GestorEMF = Persistence.createEntityManagerFactory("GestorPU");
return GestorEMF.createEntityManager();
} else {
Properties props = new Properties();
props.setProperty("hibernate.connection.url", "jdbc:firebirdsql:"+endfdb+"/3050:" + Local);
usrEMF = Persistence.createEntityManagerFactory(PU, props);
HttpSession sess = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
sess.setAttribute("mitryusEMF", mitryusEMF);
return mitryusEMF.createEntityManager();
}
}
`
// Aqui eu seto o EM toda vez q o usuario precisa
` public EntityManager getEntityMitryus() {
EntityManagerFactory usuario = (EntityManagerFactory) getSession().getAttribute(“mitryusEMF”);
return usuario.createEntityManager();
}`