Ao tentar carregar um cache do início, dependendo do tamanho das tabelas de cadastro, pode ser
levado um tempo considerável na montagem do cache no disco. Esse tempo vai variar de acordo com o
tamanho dessas tabelas, pois os dados serão capturados no banco e salvos no disco. Nessas tabelas
estão os registros como: cadastro de cliente, preço, estabelecimentos, etc. Enquanto o Engine
estiver carregando esse cache, ele não poderá ser utilizado. Por esse motivo, a recarga do cache
só deve ser feita em casos de extrema necessidade, se tiver de ser feito em horário que o sistema
esteja em uso. Alguns fatores influenciam nesse tempo de carga, como por exemplo: processador,
memória RAM, velocidade do disco, conexão com o banco de dados e volume dos dados.
A maneira para se fazer uma nova carga do cache é parar a execução do Engine e depois excluir
(se houver necessidade de guardar esse cache, as pastas poderão ser somente renomeadas, como por
exemplo adicionar “_” ao final do nome de cada uma delas) as pastas dbCache, dbCacheBackup e
dbCacheProvider, presentes dentro do diretório onde está o Engine. Quando o Engine for iniciado
novamente, as pastas citadas acima serão recriadas e o cache montado novamente.
O cache também pode ser remontado a partir do backup existente no diretório do Engine. Para isso,
somente a pasta dbCache deve ser excluída ou renomeada. Porém, é importante ressaltar que o backup
só é feito quando o Engine é inicializado. Caso o Engine não seja iniciado diariamente, o backup
pode ser muito antigo, e a sua atualização poderá ser muito demorada. A sugestão é que o Engine
seja reiniciado em um determinado horário que não esteja em uso. Se estiver como serviço do Windows
o interessante é configurar uma tarefa que, em determinado horário, reinicie o serviço. Isso fará
com que o backup do cache seja atualizado e em casos onde é necessário recarregar o cache bastará
excluir a pasta dbCache pois será utilizado o backup.
Vale ressaltar que em se tratando de gerência de riscos para casos de problema no Engine ou na
máquina onde há o servidor principal, o mais indicado é utilizar técnicas de replicação, como
por exemplo: ter um outro Engine como servidor de aplicação onde esse Engine não recebe nenhum
tipo de requisição e só existe para que seja feito backup e mantenha um cache íntegro. É importante
que esse Engine seja reiniciado toda noite, para que o backup do cache seja sempre realizado. Em
casos de indisponibilidade do servidor principal, uma solução rápida seria só mudar o diretório do
serviço, fazendo com que o servidor que era de backup passe a ser o principal.
Outro ponto é que mesmo utilizando a técnica acima, ainda há a possibilidade do próprio hardware,
onde está o servidor, ter um problema. Para esse caso, seria interessante ter uma outra máquina com
a mesma configuração e com o Engine já configurado e que estivesse sendo mantido o cache atualizado.
Com a queda do servidor principal por problema de hardware, rapidamente o outro servidor poderia
ser colocado no ar, lembrando apenas de alterar o IP.
Essas técnicas visam a robustez da arquitetura a ser utilizada na aplicação, tendo sempre um opção
para qualquer problema que possa vir a ocorrer e fazendo com que a resposta seja rápida para esses
problemas, minimizando o tempo offline da base.