Criar um programa escrito em jsp e classes java , usando hibernate com acesso comprovado ao banco de dados postgres usando pool de conexões c3p0
o fluxo imaginado é :
pagina.jsp > interceptação do servlet filter hibernate > classes java (sets e gets) > acesso ao banco com c3p0 > retorna pagina jsp.
Do prazo:
========
é um programa de teste simples para quem realmente tem experiencia com JSP e usa o hibernate/c3p0. Preciso deste projeto concluído em 10 dias.
Especificação, condições e requisitos do projeto:
===================================================
- programador deve ter experiencia em jsp e hibernate
- o programador deve descrever o ambiente usado, pois o sistema deve rodar no meu ambiente tambem:
- versao do tomcat, hibernate, java e postgres, driver jdbc
- meu ambiente: tomcat 6, hibernate 4, java 6, postgres 9
- o programa não pode travar o banco de dados:
- no postgres as conexões do pool nunca devem ficar em modo "idle in transaction"
- ao iniciar o pool c3p0: o postgres deve ter conexoes somente em modo "idle".
- O programa deve permitir inserir dados e depois acessar uma tabela no banco de dados e obter nome através de pesquisa por e-mail.
--- Ex de tabela : tabela usuario (int id, vchar nome, vchar email )
--- a chave primaria deve ser gerenciada pelo hibernate usando @anotations
- o programa não precisa de formulario. A inclusão do usuario e a exibição dos dados pode ser bem simples .
--- Ex : jsp : <%
// parteAleatoria necessaria para executar N vezes a pagina para poder testar o pool com o httperf.
String nome = "jose da silva"+parteAleatoria;
String email = "
jose@temp.com.br"+parteAleatoria;
Usuario u =
usuario.criar( nome , email);
out.println("pesquisando usuario com email :" + email );
u.pesquisa(email);
if (u!=null)
out.println ("usuario encontrado: nome: " + nome);
// exibir estatísticas de hibernate que comprovam que o sistema está pegando conexão do pool
// mostrar se foi executado um getTransaction
// mostrar se foi executado um beginTransaction
%>
- o programa deve utilizar classes e métodos do hibernate que mostrem que estão acessando o banco de dados através do pool c3p0.
--- O pool do c3p0 deve ter 4 conexoes
- o programa deve pegar conexoes do pool, bem como criar novas conexoes, por exemplo usando:
---- transaction = session.beginTransaction();
---- transaction = session.getTransaction();
- o programa em JSP deve ser bastante simples, chamando as classes e métodos necessárias
- a estrutura que eu imagino é a seguinte:
==============================================
--- pagina jsp :
teste.jsp
--- classes : uma ou mais classes que façam o acesso ao banco de dados usando hibernate c3p0
------- as classes devem usar anotations, setters e getters
--- arquivo xml de configuração hibernate com as configurações de acesso ao banco e c3p0
--- classe hibernateUtils = padrao hibernate (SessionFactory)
--- classe hibernateFilter = um filtro servlet para pegar as requisicoes conforme padrao OSIV usando SessionFactory (
https://community.jboss.org/wiki/OpenSessionInView)
-- não realizo o pagamento sem ver o projeto concluído.
============================================================
-- Como prova eu quero ver o código bem como o resultado, podendo ser exibido através do teamviewer:
---------- mostrar a execucao da pagina por cerca de 50 vezes usando o httperf ($ httperf --server
teste.com.br/teste.jsp --port 8080 --num-conns 50 --rate 1 ),
----------mostrar logs do tomcat,
--------- mostrar resultados no pgadmin statistics (ver conexoes em idle), monitorando também em tempo real para ver o uso do pool ao rodar o httperf.
--------- Mostrar resultados das inclusoes no BD
----------mostrar resultado que comprove que o acesso ao banco foi feito usando uma conexao já existente no pool do c3p0
-- como resultado eu espero:
========================
---- conexões pegando do Pool, e aumentanto a demanda, criando novas conexoes (config: acquireIncrement=1)
---- conexão ao banco postgres usando o c3p0 comprovada (logs e métodos)
---- conexoes sem "idle in transaction" no banco de dados
---- o programa jsp não deve travar o tomcat, nem estourar o heap de memoria
--- o programa jsp (
test.jsp) deve ser interceptado pelo servlet filter hibernate.
---- fornecer o codigo fonte completo para eu colocar no meu ambiente de desenvolvimento
Prazo de Entrega: 24 de Agosto de 2013