Olá a todos!
Estou desenvolvendo um sistema que precisa fazer parse de uma grande quantidade de XMLs (alguns gigabytes) e então trabalhar com esses dados. Neste cenário, estou enfrentando dois problemas.
Problema 1
O tempo de leitura dos XMLs é impraticável (estamos falando de dias) e, sendo uma aplicação que usa Facelets e Hibernate, bibliotecas como o Picollo não são uma opção (esses frameworks exigem validação dos XMLs). Como os arquivos já foram validados anteriormente, estou optando por uma leitura básica de Strings, mas parece que estou reinventando a roda…
Problema 2
Estou usando o H2SQL, que tem uma boa performance por trabalhar com os dados em memória. No entando, com essa quantidade de dados eu constantemente recebo um OutOfMemory (usei VM’s com até 2Gb de Xmx). Estou pensando em usar o postgresql, mas me pergunto se o cache de primeiro nível do Hibernate não vai manter o uso da memória excessivamente alto. Seria o caso de usar apenas o JDBC?
Agradeço desde já por qualquer sugestão!