Eu fiz uma aplicacao no Struts. Tenho uma página JSP (minha view) exibindo uma lista de items que eu trouxe do modelo. Nada demais, ate aí, blz.
Só que meu cliente quer ficar olhando pra tela e ve as mudancas em tempo real sem precisar ficar apertando nenhum botao, entao a cada 5 segundos a pagina deveria ser atualizada.
Minha pergunta eh: existe algum padrao que eu possa seguir pra fazer a atualização da View quando os dados do Modelo mudarem ?? Ou existe outra solucao ??
Fiz uma “gambiarra” aqui, mas o mySQL para de responder, pois ultrapasso o limite de conexoes permitida por usuario…
Eu acabo de pensar em tu usar um Padrão de Projeto, usar uma imlementação do pattern observer.
Mas fico em dúvida, se isso funciona em um ambiente web…
Esse eh o problema…pelo que andei lendo, o Observer nao funciona na Web.
Mas deve existir outra solucao…a gambiarra que fiz funciona, mas logo que passa alguns segundos o mySQL nao aceita mais conexoes do usuario, ele tem limite (eu já aumentei esse limite) mas mesmo assim nao rola…
Aplicações WEB utilizam o protocolo http, que não mantém o estado do cliente, sendo curto e grosso rs… isso quer dizer que o servidor não sabe que possui um cliente, antes do mesmo fizer uma solicitação no server. E ao término do processamento do server, o mesmo naum mais sabe da existencia do cliente.
Então vamos as soluções que conheço.
1-) Para atualizar a página a cada 5 segundos, você pode implementar a seguinte tag HTML em sua página:
<meta http-equiv=“refresh” content=“5; URL=http://www.netvale.com.br/create8/index.htm”>
2-) Utilizar programação orientada a Aspecto, para captar as alterações realizadas no model então no cliente abrir uma conexão via Socket com o Controller, e a cada alteração vc envia para o cliente os dados alterados ou um aviso de alteração.
3-) Utilizar no cliente um server J2EE para receber chamadas assincronas utilizando o JMS ou um Message Drive Bean.
Lembrando que retirando a 1º idéia, todas as outras irão aumentar muito o grau de complexidade de sua aplicação, mas as vezes é necessário, possível ou vc quer…
Verdade, me eskeci que com MVC, tenho soh um reencaminhamento de fluxo de processamento no server, a URL da Requisição, continua a anterior ao reencaminhamento… hehehehe
Ou seja, um refresh, chamaria novamente o controller, que instancaria um DAO, q retornaria uma collection… :lol:
Só que eu ainda nao consegui fazer isso numa displaytag, pq quando eu clico em algum dos links para ordenação, por exemplo, ela faz referência ao jsp, nao ao controller…
Blz. Funciona…POREM…depois de alguns ± 3 minutos…surge o erro no console do Tomcat:
java.sql.SQLException: Data source rejected establishment of connection, message from server: "Too many connections"
O erro vem do mySQL 5 pq o usuario, nesse caso, o root, extrapola seu limite de conexoes. Eu ja aumentei esse numero, mas mesmo assim sempre o erro aparece…
Isso eh limitacao do mySQL ? Existe alguma conf q possa ser feita pra remover esse limite…ja to buscando na Net…mas nada.
O problema era que a maldita GUI que eu uso pra trabalhar com o mySQL NAO mudava o limite max de conexoes permitadas por usuario, na verdade, ela mostrava pra mim que alterado o valor, mas no arquivo do mySQL nao era alterado. :shock:
O problema era que a maldita GUI que eu uso pra trabalhar com o mySQL NAO mudava o limite max de conexoes permitadas por usuario, na verdade, ela mostrava pra mim que alterado o valor, mas no arquivo do mySQL nao era alterado. :shock:
Saco…mas blz…ta resolvido.
obrigado a todos! [/quote]
Mas se tu nao tiver fechando as conexoes no teu DAO, ou sei lá o que, é só uma questão de tempo pra dá pau de novo…
O problema era que a maldita GUI que eu uso pra trabalhar com o mySQL NAO mudava o limite max de conexoes permitadas por usuario, na verdade, ela mostrava pra mim que alterado o valor, mas no arquivo do mySQL nao era alterado. :shock:
Saco…mas blz…ta resolvido.
obrigado a todos! [/quote]
Mas se tu nao tiver fechando as conexoes no teu DAO, ou sei lá o que, é só uma questão de tempo pra dá pau de novo…