segunda-feira, 30 de maio de 2011

IBX & Firebird - Out of Memory em relatório com muitos registros


Olá amigos! Certo dia me deparei com um belo "Out of Memory" em uma máquina de 4GB de RAM e uma base de 500MB. O erro aparecia quando o cliente tentava tirar um relatório de vendas de 01/01/2009 à 31/12/2009. Cheguei a pensar que pudesser ser configuração do FB, mas fiz os testes por fora do sistema e não tive problemas com o select. Sendo assim, o problema estava no programa em trazer muitos registros pra ele.

Pensei: se é um relatório, uma vez impresso o registro, pra que armazena-lo em memória? Então fiz o teste com a propriedade "Unidirectional = True" no IBQuery e adivinha?! "Adios" out ouf memory!

Essa semana um amigo me procurou para dizer que teve o mesmo problema e encontrou a dica no site da lista de discussão da firebase, onde a postei originalmente. Então decidi publica-la aqui também para que possa ajudar mais pessoas com este problema.

Nenhum comentário:

Postar um comentário