Duvida Funcionalidade/Aplicação REST
17/09/2018
0
Boa tarde,
Estou com desenvolvendo um webservice Restful, e dentre os métodos tem um que gostaria de implementar que tenho duvida se "dá" e "se deve" ser feito via webservice. Trata-se de um método, ou opção de retornar todos os registros de uma tabela (aproximadamente 20mil registros) para integração com outra base de dados.
Fiz um teste, retornando todas as linhas e parece ocorre algum tipo de "paginação" porque ele chama o webservice 2x e na segunda da erro nos recursos de acesso a banco, se eu reduzir a quantidade registros a serem retornados funciona.
Alguém pode me orientar???
obrigado,
Estou com desenvolvendo um webservice Restful, e dentre os métodos tem um que gostaria de implementar que tenho duvida se "dá" e "se deve" ser feito via webservice. Trata-se de um método, ou opção de retornar todos os registros de uma tabela (aproximadamente 20mil registros) para integração com outra base de dados.
Fiz um teste, retornando todas as linhas e parece ocorre algum tipo de "paginação" porque ele chama o webservice 2x e na segunda da erro nos recursos de acesso a banco, se eu reduzir a quantidade registros a serem retornados funciona.
Alguém pode me orientar???
obrigado,
Ricardo Pestana
Curtir tópico
+ 0
Responder
Post mais votado
17/09/2018
Olá Ricardo,
não é aconselhável fazer uma operação que retorne de uma só vez todos os dados da sua tabela. Isso gera um alto custo de desempenho para seu SGDB e aplicação. Fora que trafegar tantos dados de uma só vez na rede vai demorar um bocado e qualquer probleminha na rede mata sua operação e você nem vai saber onde parou. A melhor forma seria paginar os dados, executa uma pagina de dados e ao final da operação passa para a próxima. Se fizer isso com paginas pequenas, embora tenha que fazer diversas operações a transferência será mais rápida e com menos chance de ter problema com o trafego.
Embora, eu acredite que um webservice não deveria ser usado para esse fim. Se quer realizar uma integração entre duas bases de dados eu aconselharia você a trabalhar com JMS e não com REST.
não é aconselhável fazer uma operação que retorne de uma só vez todos os dados da sua tabela. Isso gera um alto custo de desempenho para seu SGDB e aplicação. Fora que trafegar tantos dados de uma só vez na rede vai demorar um bocado e qualquer probleminha na rede mata sua operação e você nem vai saber onde parou. A melhor forma seria paginar os dados, executa uma pagina de dados e ao final da operação passa para a próxima. Se fizer isso com paginas pequenas, embora tenha que fazer diversas operações a transferência será mais rápida e com menos chance de ter problema com o trafego.
Embora, eu acredite que um webservice não deveria ser usado para esse fim. Se quer realizar uma integração entre duas bases de dados eu aconselharia você a trabalhar com JMS e não com REST.
Marcio Souza
Responder
Mais Posts
21/09/2018
Ricardo Pestana
Ballem bom dia,
Obrigado pela orientação, consegui montar com rest utilizando a paginação. Como as bases estão na mesma rede e meu objetivo era testar/aprender o rest nessa situação serviu a meu propósito.
Fiz uma alteração que deixou a aplicação bem legal que foi a utilização de processamento em lote. Pretendo alterar a solução para fazer integração acessando diretamente a base de dados....
muito obrigado pela ajuda.
Obrigado pela orientação, consegui montar com rest utilizando a paginação. Como as bases estão na mesma rede e meu objetivo era testar/aprender o rest nessa situação serviu a meu propósito.
Fiz uma alteração que deixou a aplicação bem legal que foi a utilização de processamento em lote. Pretendo alterar a solução para fazer integração acessando diretamente a base de dados....
muito obrigado pela ajuda.
Responder
Clique aqui para fazer login e interagir na Comunidade :)