Tenho uma servlet que precisa ler um monte de informacoes de configuracao durante sua execucao. Eu fiz uma implementacao com XML mas estou achando lento.
Minha ideia seria que um programa externo gravasse estas informacoes em um BD Prevayler antes da execucao da servlet, e esta apenas fizesse a leitura sob demanda. Isso é possivel?
Eu vi os exemplos do Prevayler e sempre existe apenas uma aplicacao que grava e le os dados do Prevayler. Depois, fecho e abro a mesma aplicacao e continuo mexendo nos dados sem problema. Mas no meu caso eu teria duas aplicacoes (programa externo e servlet) “compartilhando o mesmo BD”. Nao sei se isso é possivel no Prevayler.
Se nao for possivel, eu terei que sempre gravar as informacoes durante o boot da servlet, o que ira gerar um tempo a mais de boot.
Tempo para subir o servlet pela primeira vez vc meio que deveria ignorar, se o tempo extra for por causa de processamento de configuracoes e tudo mais. Como vc somente processara uma unica vez, as chamadas seguintes serao muito mais rapidas, ja que vc tera os objetos em memoria.
Agora, o teu arquivo XML eh estupidamente grande ou vc faz milhares de consultas / processamentos para ficar tao lento assim como vc diz? nao haveria a possibiliade de “codigo escrito sem mto cuidado”?
Concordo com o rafael aqui… nao seria melhor ler o XML de uma vez durante o startup e manter tudo em memoria? A diferenca entre fazer isso e usar o Prevayler, em materia de performance em runtime, é nula.
Alias, se a velocidade de leitura do XML nao estiver lá aquelas coisas, dê uma olhada no Digester
Somente para tirar minha duvida: eu posso ter duas aplicacoes diferentes acessando o mesmo BD Prevayler? Ou o BD é “fechado” somente para a aplicacao que o criou?