Ajuda, padrão de projeto na persistência

Galera desculpa criar este tópico… + estou desesperado… rsrs
procurei vários tutoriais, video aula, livro (e-book), na internet e não achei nada que eu queria…
eu estou com 2 problemas…

1- não sei ao certo quando instanciar um novo objeto, parece que cada vez que alguem entra no meu sistema ele cria “algo” novo na memória e ela vai sobrecarregando… sei disso pois tenho um servidor alugado VPS e pelo linux usando htop eu vejo o uso da memória…
2- minha conexão com o banco de dados está ficando aberta e depois de um tempo da erro :frowning:

Eu vi vários tutoriais na internet, mais eu não consegui achar nenhum que ensina +ou- da forma que eu faço…
1 - Primeiro eu faço a modelagem do banco no MySQL Workbench
2 - Crio o projeto no netbeans 6.8 ou superior… e nessa parte já adiciono JSF 2.0, hibernate e primefaces…
3- crio um pacote modelo, e faço a engenharia reversa… neste caso ja vai criar a persistence.xml que vai ficar as configurações de conexão com o banco… no caso vai ficar NomedoprojetoPU
4- depois eu crio o pacote “beans” e crio por exemplo o UsuarioBean. onde eu coloco a anotação @ManagedBean e faço os métodos de salvar, getters and setters etc…
5- e eu tenho um pacote “banco” com 2 classe… “Persitencia” que tem uma referencia pro NomedoprojetoPU e “DaoGenerico” que tem alguns métodos como por exemplo:

public void salvarNovo(Object obj){ em.getTransaction.begin(); em.persist(obj); em.getTransaction.commit(); }

Se alguém puder me ajudar, eu iria agradecer muito, nem que for pra min posta meu projeto completo aki pra download…
Eu to sempre ajudando ai no fórum… estou sempre ativo, e se alguém puder me ajudar eu agradeço muito :smiley:

Qualquer coisa se alguem tiver um livro ou tutorial, qualquer coisa que ajude eu fico grato =)

Eu tenho 3 livros de java, mais é muito extenso e complexo… se eu pegar um projeto pronto fazendo um CRUD por exemplo bem simples já iria ajudar…

qual o erro?

eu chutaria de longe vc dar uma estudada sobre escopo de sessão e pool de conexão.

outra coisa legal seria vc analisar se alguma operação esta consumindo mt memoria d besteira, se é possível melhorar a lógica.

att,

intão eu tenho um livro de hibernate que explica… mais eh muito teórico… eu aprendo muito mais fácil vendo na prática… :frowning:

erro (ao vivo ^^):
http://j2vps.zapto.org/LabDiniz/index.xhtml

em.getTransaction.begin();
em.persist(obj);
em.getTransaction.commit();

depois do commit, faz um flush e um close.

Caused by: javax.persistence.TransactionRequiredException: no transaction is in progress

deu esse erro :frowning:

esse meu DaoGenerico ta errado eu acho, sei lá… ele funfa só na hora…
to precisando pegar um tutorial de um projeto certim…

Como ficou seu código final?

Como você está construindo seu EntityManager?

Tenta fazer assim no seu Dao genérico coloca esse método


public void close() {
		if (em != null && em.isOpen()) {
			em.flush();
			em.getTransaction().commit();
			em.close();
		}

	}


// quando for fazer insert, update ou delete faça assim
em.getTransaction.begin();
em.persist(obj);
this.close();



[quote=gilmaslima]Tenta fazer assim no seu Dao genérico coloca esse método


public void close() {
		if (em != null && em.isOpen()) {
			em.flush();
			em.getTransaction().commit();
			em.close();
		}

	}


// quando for fazer insert, update ou delete faça assim
em.getTransaction.begin();
em.persist(obj);
this.close();

[/quote]

eh cara, em partes funcionou… no meu pc funciono
mais quando eu joguei pro servidor deu erro:
http://j2vps.zapto.org/LabDiniz/

outro problema eh que cada sessão criada ta carregando muito a memória do servidor :frowning:
aff meu projeto ta totalmente fora do padrão e eu não acho nada pra corrigir isso…!!


Veja se você não tem algum código que não está fechando a conexão.

Olá jakefrog

“Veja se você não tem algum código que não está fechando a conexão.”

Bom o problema é esse mesmo, porém eu não sei como fazer para “fechar” a conexão e “abrir” quando necessário…
Meu projeto ta todo bagunçado, eu não tenho um “padrão” pra desenvolver… :S

  • com seu post, meio que “sem querer” você me ajudou :smiley: pois entrei no seu blog e vi este post: http://uaihebert.com/?p=836
    Que está me ajudando d+, pois eu gosto de trabalhar com novas tecnologias, sempre atualizado…

a unica coisa “ruim” nele de começo é que eu sou + acostumado a usar o netbeans + tomcat e você ta usando eclipse + jboss… mais tranquilo, instalei eclipse no meu linux e já estou seguindo seu tutorial, até agora tudo certo !!!

Maravilha então.

Do modo como está no post, quem controla a transação é JBoss, ou seja, você não vai precisar ficar abrindo/fechando a conexão.

Hmm entendi… por isso geralmente não tem nada nos tutoriais sobre abrir e fechar conexão… pq geralmente o pessoal usa jboss…

Meu VPS tem 2GB de memória RAM… será que o jboss não vai ficar pesado pra rodar nele?

[quote=alandiniz]Hmm entendi… por isso geralmente não tem nada nos tutoriais sobre abrir e fechar conexão… pq geralmente o pessoal usa jboss…

Meu VPS tem 2GB de memória RAM… será que o jboss não vai ficar pesado pra rodar nele?
[/quote]
Não tenho a mínima idéia! [=

rsrs tranquilo… vou fazer os testes então e postar aqui o resultado =)

rsrs num to nem conseguindo inicia o jboss lá…

jakefrog, será que tem como esse tutorial seu eu usar o tomcat? ^^

[quote=alandiniz]rsrs num to nem conseguindo inicia o jboss lá…

jakefrog, será que tem como esse tutorial seu eu usar o tomcat? ^^[/quote]
Mano, para tomcat não tem como funcionar pois tomcat não implementa EJB.

Pretendo para o final do mes que vem fazer um com Tomcat. [=

rsrs to fora de base em teoria…

  • vlw acho que vou dar uma pesquisada em algum tutorial por ai
    e qlqr coisa ficar no aguardo do seu tutorial ^^

uma dica: usa mysql workbench, eclipse, tomcat, jsf 2, primefaces, ireport…

:stuck_out_tongue:

MySQL -> banco de dados é o que menos me preocupo, uso o postgres pq é o que está instalado aqui. Basta trocar o JAR que funciona.
Eclipse, Tomcat, JSF 2 -> Exatamente isso que vou utilizar.
Primefaces, Ireport -> Não pretendo para o post não ficar grade. O ideal é mostrar o básico e depois o usuário crescer com a aplicação.

Ainda pretendo lançar vários posts sobre Primefaces, mas após o post da aplicação com Tomcat.

Inté mais! \o_

eh realmente colocar iReport vai ficar meio grande o post…
e esse o básico do básico ja sei… rsrs

agora acho que vai ficar legal o tutorial usando eclipse + tomcat + jsf2… eu pesquisei bastante um tutorial assim e não achei nenhum até hoje!