Monitorando alterações no banco!

13 respostas
diegocorp

Pessoal preciso monitorar a alteração de um status de um campo na minha tabela, por exemplo… se eel passar de 0 para 1…
minha aplicação executa uma tarefa…
unica maneira de ser feito isso eh atraves de thread ne? fica em loop monitorando esse campo no banco???

13 Respostas

fabim

Sao varias as maneiras.

  • Implementar triggers no seu banco que insiram essas informacoes numa tabela de “auditoria” por exemplo, e ai sua pagina de monitoramento olhar pra essa tabela.
  • Se usar EJB, utilizar as anotacoes @PostUpdate, @PostInsert etc… elas interceptam esse momento em que sua entidade é alterada.

Por ai vai

drsmachado

No banco de dados?
Por que não cria uma trigger e só “loga” isso?

diegocorp

nao queria trabalhar com triggers…
sem ser dessa maneira… ah outra???

Alexandre_Saudate

Porque, exatamente, você precisa monitorar esse campo? Integração através de BD?

diegocorp

eu tenho uma aplicacao escrita em outra linguagem… que acessa o banco… ai por exemplo… quando ela da um update no campo setando 1 em vez de 0
minha outra aplicacao… executa uma tarefa…

diegocorp

eu tenho uma aplicacao escrita em outra linguagem… que acessa o banco… ai por exemplo… quando ela da um update no campo setando 1 em vez de 0
minha outra aplicacao… executa uma tarefa…

Alexandre_Saudate

eu tenho uma aplicacao escrita em outra linguagem… que acessa o banco… ai por exemplo… quando ela da um update no campo setando 1 em vez de 0
minha outra aplicacao… executa uma tarefa…

OK. Mas o interessante seria você não ter que fazer isso, porque onera demais o banco sendo que seria responsabilidade da aplicação que fez a modificação avisar o seu sistema. Não seria melhor criar um web service, ou mesmo uma nuvem de eventos, para que o sistema que escreveu no banco avisasse o seu de que ele escreveu algo?

diegocorp

eu tenho uma aplicacao escrita em outra linguagem… que acessa o banco… ai por exemplo… quando ela da um update no campo setando 1 em vez de 0
minha outra aplicacao… executa uma tarefa…

OK. Mas o interessante seria você não ter que fazer isso, porque onera demais o banco sendo que seria responsabilidade da aplicação que fez a modificação avisar o seu sistema. Não seria melhor criar um web service, ou mesmo uma nuvem de eventos, para que o sistema que escreveu no banco avisasse o seu de que ele escreveu algo?

certo! teria que ser pelo web service… qual forma deu criar um webservice mais simples possivel?

Alexandre_Saudate

eu tenho uma aplicacao escrita em outra linguagem… que acessa o banco… ai por exemplo… quando ela da um update no campo setando 1 em vez de 0
minha outra aplicacao… executa uma tarefa…

OK. Mas o interessante seria você não ter que fazer isso, porque onera demais o banco sendo que seria responsabilidade da aplicação que fez a modificação avisar o seu sistema. Não seria melhor criar um web service, ou mesmo uma nuvem de eventos, para que o sistema que escreveu no banco avisasse o seu de que ele escreveu algo?

certo! teria que ser pelo web service… qual forma deu criar um webservice mais simples possivel?

Em que linguagem? Usando qual application server?

diegocorp

eu tenho uma aplicacao escrita em outra linguagem… que acessa o banco… ai por exemplo… quando ela da um update no campo setando 1 em vez de 0
minha outra aplicacao… executa uma tarefa…

OK. Mas o interessante seria você não ter que fazer isso, porque onera demais o banco sendo que seria responsabilidade da aplicação que fez a modificação avisar o seu sistema. Não seria melhor criar um web service, ou mesmo uma nuvem de eventos, para que o sistema que escreveu no banco avisasse o seu de que ele escreveu algo?

certo! teria que ser pelo web service… qual forma deu criar um webservice mais simples possivel?

Em que linguagem? Usando qual application server?

em java…! qual application server vc me indica ? nunca trabalhei com webservice…

Alexandre_Saudate

diegocorp:

em java…! qual application server vc me indica ? nunca trabalhei com webservice…

Se você nunca trabalhou, recomendo estudar mais a fundo para entender direitinho o que eu estou sugerindo…

Como a sua aplicação (a que precisa monitorar o banco) está feita? Desktop, web… ?

diegocorp

asaudate:
diegocorp:

em java…! qual application server vc me indica ? nunca trabalhei com webservice…

Se você nunca trabalhou, recomendo estudar mais a fundo para entender direitinho o que eu estou sugerindo…

Como a sua aplicação (a que precisa monitorar o banco) está feita? Desktop, web… ?

Desktop

Alexandre_Saudate

diegocorp:
asaudate:
diegocorp:

em java…! qual application server vc me indica ? nunca trabalhei com webservice…

Se você nunca trabalhou, recomendo estudar mais a fundo para entender direitinho o que eu estou sugerindo…

Como a sua aplicação (a que precisa monitorar o banco) está feita? Desktop, web… ?

Desktop

OK… nesse caso, você pode expôr um web service mais ou menos assim:

@WebService
public class Servico {


@WebMethod
public String fazAlgumaCoisa(String parametro) {
return "Ola, " + parametro;
}

}


public class ClasseQueExpoeOServico {

public static void main(String[] args) {
Endpoint.create(new Servico()).publish("http://localhost:8080"); //Algo assim... não lembro de cabeça exatamente o que colocar como endereço, mas esse é o caminho.
}

}

Aí, a outra aplicação (a que escreve no banco) tem que saber consumir seu serviço. Depois disso, só implementar a lógica pra ir até o banco.

[]'s

Criado 15 de dezembro de 2011
Ultima resposta 20 de dez. de 2011
Respostas 13
Participantes 4