| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 09:59:18
|
santana_fabiano
Debugger
Membro desde: 11/09/2006 09:55:38
Mensagens: 55
Offline
|
Bom dia pessoal.
Estou com um problema.
Tenho uma aplicação feita em java jsf e jdbc que acessa dados de fatura de agência. Mas o numero de acessos simultâneos vai ser muito grande em um determinado período do mês, e estamos prevendo que o banco de dados não vai aguentar o tranco.
Gostaria de saber se existe alguma framework onde baseado em um período determinado e no código da agência, fizesse uma consulta no banco e gerasse este resultado em forma de html estático, esta forma evitaria a sobrecarga no banco. Algo parecido com os portais de nóticias que disponiblizam as notícias em conteúdo estático.
Se alguém poder me dar uma dica, sujerir algo ficorei muito agradecido.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 10:01:12
|
andreiribas
JavaEvangelist
![[Avatar]](/images/avatar/39016cfe079db1bfb359ca72fcba3fd8.jpg)
Membro desde: 30/04/2006 10:43:13
Mensagens: 478
Localização: Curitiba - PR
Offline
|
q tal usar cache?
|
SCJP 6.0
OCE JSP and Servlet Developer, JEE 6 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 10:02:40
|
jakefrog
GUJ Expert
![[Avatar]](/images/avatar/6e2400ec18b6f1952f1053c65df7a8b6.png)
Membro desde: 22/01/2007 22:00:53
Mensagens: 4191
Offline
|
O que eu pensei aqui é você fazer um cache onde ficariam as informações.
Quando alguém fizesse uma consulta, vc verificaria se esse objeto já está em cache, caso não esteja, vc consulta o banco, salva no cache e depois envia o resultado para o cliente.
|
Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]
SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)
Vamos em frente que atrás vem gente! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 10:02:45
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Se você está usando um web container como o Oracle WebLogic ou o IBM WebSphere (não sei quanto ao Glassfish), eles costumam ter esse recurso pronto (você poder ter páginas já em um cache, dependendo de uma especificação de uma URL). Quando a URL de uma página dinâmica segue a especificação configurada, ela é obtida apenas uma vez, e em chamadas posteriores é usada a cópia em cache em vez de chamar a parte dinâmica.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 10:06:10
|
evefuji
GUJ Ranger
Membro desde: 14/12/2007 22:37:17
Mensagens: 753
Offline
|
glassfish também, os outros que você citou não conheço. Mas acredito que da mesma forma que o glassfish você coloca um tempo para a página expirar.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 10:07:47
|
jakefrog
GUJ Expert
![[Avatar]](/images/avatar/6e2400ec18b6f1952f1053c65df7a8b6.png)
Membro desde: 22/01/2007 22:00:53
Mensagens: 4191
Offline
|
Só falta ele estar utilizando Tomcat. =P
|
Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]
SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)
Vamos em frente que atrás vem gente! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 10:14:12
|
evefuji
GUJ Ranger
Membro desde: 14/12/2007 22:37:17
Mensagens: 753
Offline
|
o Tomcat eu acredito que não tem, mas nada impede ele de usar um framework ORM com cache de consultas, assim já solucionaria essa parte de consultas ao banco.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 10:15:24
|
jakefrog
GUJ Expert
![[Avatar]](/images/avatar/6e2400ec18b6f1952f1053c65df7a8b6.png)
Membro desde: 22/01/2007 22:00:53
Mensagens: 4191
Offline
|
evefuji wrote:o Tomcat eu acredito que não tem, mas nada impede ele de usar um framework ORM com cache de consultas, assim já solucionaria essa parte de consultas ao banco.
Ele disse que estava utilizando JDBC.
Vai ter um trabalhinho maneiro aí pela frente para ele...
|
Meu blog sobre java uaiHebert.com
Conceitos OO - Diga, não pergunte!, Lei de Demeter
TDD Primeiros Passos, JUnit com HSQLDB, JPA e Hibernate, Cobertura de testes com JUnit Ant e Emma, Cobrindo seus testes com Cobertura, JUnit, HSQLDB, JPA
Código Limpo: Partes: 01,02,03,04,05
Web/JSF - Criando um WebServer, Tratando Exceções, Autenticação de Usuários (Filter/Servlet), JSF - Hello World, AutoComplete, JSF: Converter e Bean Auto Complete, Validação de Login de Usuário com JSF e JAAS, JSF Exibindo Objeto e Mensagens após Redirect, JSF Exemplos Simples com Ajax, JSF Parametros por Get Request RESTFullAplicação Web Completa JSF EJB JPA JAAS, Lazy JSF Datatable Pagination (Primefaces)
Design Pattern - Strategy, Design Pattern - Observer (Parte 01), Design Pattern - Observer (Parte 02)
Business (JPA)- Hibernate 3 com JPA 2, Create schema script: Ant, Hibernate 3 e JPA 2, TableGenerator Chave Primária Simples, SequenceGenerator,Chave Primária Composta, Mapeando Datas (Date) e Enum, Mapeando Duas Tabelas em uma Classe, @OneToOne Unidirecional e Bidirecional, @OneToMany e @ManyToOne Unidirecional e Bidirecional, @ManyToMany Unidirecional e Bidirecional, Ordernando listas e utilizando Map como atributo mapeado,Uma tabela por herança, JPA Uma Classe por Sub-Classe, JPA Consultas e Dicas, [HOT]Quatro soluções para LazyInitializationException[HOT]
SCJP(1.6 - Ingles - 29/12/2009)
SCWCD(1.5 - Ingles - 30/06/2010)
Vamos em frente que atrás vem gente! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 10:22:38
|
evefuji
GUJ Ranger
Membro desde: 14/12/2007 22:37:17
Mensagens: 753
Offline
|
verdade jake, não me atentei a esse detalhe.
Bom, tem bancos de dados que tem seu cache de consultas (a maior parte deles), se souber configurar bem isso pode ser que não tenha tantos problemas. O problema do cache de consultas nos bancos é que o banco consome mais memória para cada conexão com ele, que se tivesse na aplicação .
Outra alternativa seria também colocar uma outra camada sobre o web container, o HTTPD como proxy. Ele possui recurso de cache de páginas para o mod_proxy (para o mod_jk não sei).
Só uma coisa, se me lembro bem, esses caches de páginas não funcionam bem para usuários logados quando estão no HTTPD.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2011 10:56:55
|
asaudate
GUJ Master
![[Avatar]](/images/avatar/974e2945a18e0bfb8e3aa8becac3e65c.jpg)
Membro desde: 01/09/2007 19:31:41
Mensagens: 1794
Localização: São Paulo
Offline
|
Antigamente existia um framework chamado JESI que fazia isso (achei uma referência aqui: http://www.jcp.org/en/jsr/detail?id=128 ). Mas não sei a quantas anda, não sei ao menos se ainda é mantido. Mas acho que vale a pena dar uma olhada porque era bem simples de usar... você colocava uma tag no seu JSP que dizia o limite de tempo que aquele conteúdo ia permanecer no cache.
[]'s
|
Alexandre Saudate
__________________________
Do not try to bend the spoon - that's impossible. Instead, only try to realize the truth: there is no spoon.
Série quickstart: Spring+Spring Security+Jersey (REST) +Hibernate (JPA) -> https://github.com/alesaudate/kickstart-springjerseyhibernate
Evite usar Axis2!!! Leia aqui para mais detalhes!
@alesaudate
Quer ler um blog especializado em web services e SOA?
 |
|
|
 |
|
|
|
|