Visão Geral de Armazenamento em Cache
Muitas das informações do sistema são alteradas com pouca frequência. Para evitar o acesso ao banco de dados sempre que este tipo de informação for necessário por um usuário final ou um processo em batch, o sistema atualiza um cache de informações estáticas no servidor Web e no trabalhador do pool de thread batch. Esses são denominados "caches do aplicativo". Alguns exemplos de caches do aplicativo incluem:
-
Mensagens do sistema
-
Rótulo de campo e outras informações sobre campo
-
Informações de Segurança
O produto Framework fornece muitos caches específicos para os dados mais utilizados (e raramente alterados). Além disso, aplicativos integráveis específicos podem introduzir caches adicionais, conforme apropriado.
As informações também podem ser armazenadas em cache em cada navegador do usuário.
Os tópicos a seguir destacam informações sobre a atualização de vários caches.
Cache do Servidor
O cache do servidor se refere aos dados que são armazenados em cache no servidor Web. Um uso importante deste cache é para acesso on-line de usuários ao aplicativo. Os caches ajudam a melhorar o desempenho ao navegar em todo o sistema, permitindo que os dados sejam acessados a partir do cache, em vez de acessarem sempre o banco de dados. Além de o usuário acessar o cache do servidor Web, outra funcionalidade implantada no servidor da Web usa caches de maneira semelhante. Por exemplo, serviços Web são implantados no servidor Web e acessam sua própria versão do cache.
O conteúdo do cache é removido sempre que o servidor Web é reiniciado. Isso significa que os novos valores são recuperados do banco de dados depois que os usuários e serviços Web começam a usar o aplicativo novamente.
O produto também fornece um comando de limpeza que pode ser emitido no URL do navegador para limpar imediatamente o conteúdo do cache. O comando flushAll.jsp esvazia todo o cache.
Por exemplo, suponha o seguinte:
- O servidor Web e a porta na qual você trabalha é denominada OU-Production:7500
- Você adiciona um novo registro a uma tabela de controle e quer que ele seja disponibilizado imediatamente nas transações apropriadas
Emita o seguinte comando na barra de endereço do navegador: http://OU-Production:7500/flushAll.jsp. Observe que o comando substitui o cis.jsp comum que aparece após o número da porta.
Se o sistema for configurado corretamente, o comando flushAll enviará uma solicitação para executar uma limpeza "global" de caches (incluindo o cache de serviços Web e o cache do trabalhador do pool de threads). Esta funcionalidade usa um Tópico JMS para publicar a solicitação de limpeza. Consulte o Server Administration Guide para obter detalhes sobre como configurar o tópico do JMS.
Observe também que o sistema fornece um serviço de negócios F1-FlushAllService, que é equivalente ao comando flushAll (exceto se ele não reiniciar a sessão do navegador). Pode ser útil para qualquer processo criado para orquestrar atualizações nos dados de configuração em que você deseja garantir que o cache seja imediatamente esvaziado. Esse serviço de negócios também é exposto como um serviço Web REST.
Cache de Batch
Ao enviar uma tarefa em batch, o componente de batch utiliza um cache de dados de hibernação para armazenar em cache os dados administrativos que não são alterados com frequência. As tabelas cujos registros estão incluídos neste cache são configuradas usando o valor Regime de Armazenamento em Cache de Armazenado em Cache para Batch. Normalmente, isso é chamado de "cache L2". Para informações adicionais, consulte Tabelas. Ao iniciar um trabalhador do pool de threads, os dados nas tabelas marcadas como armazenados no cache são carregados e armazenados no cache, desde que o pool de thread esteja em execução.
Além disso, as tarefas em batch também podem acessar os caches do aplicativo, quando aplicável. Ao iniciar um trabalhador do pool de threads, os dados do aplicativo são carregados e armazenados no cache, desde que o pool de thread esteja em execução.
Se houver trabalhos em batch que atualizem as tabelas marcadas como Em Cache para Batch, execute essa tarefa em batch usando um pool de threads especial configurado com o armazenamento em cache desativado. Entre em contato com o administrador do sistema para confirmar o pool de threads configurado dessa forma.
Se existir uma alteração nos dados armazenados no cache que devem ficar disponíveis na próxima tarefa em batch, os pontos a seguir destacarão o modo como o cache poderá ser atualizado:
-
Por padrão, o sistema é configurado para atualizar automaticamente o cache de hibernação a cada 60 segundos. Porém, uma implementação pode substituir a configuração para alterar o número de segundos entre os intervalos ou para desativar o armazenamento automático no cache completamente. Os caches do aplicativo usados pelas tarefas em batch não são afetados por esta atualização.
-
Reinicie os trabalhadores do pool de thread.
-
Execute o processo em segundo plano F1–FLUSH (Esvaziar Todos os Dados de Cache) Este processo em segundo plano esvaziará os dados do aplicativo armazenados no cache de todos os trabalhadores do pool de thread para todos os pools de thread.
-
Se a sua região tiver configurado os trabalhadores do pool de threads para "atender" às solicitações de esvaziamento global, conforme descrito no tópico Cache do Servidor, os caches do trabalhador do pool de threads também serão atualizados quando um comando flushAll for emitido.
Cache de Cliente
Além desse cache, as informações também são armazenadas em cache no navegador de cada usuário. Após limpar o cache mantido no servidor Web, você também deverá limpar o cache mantido no navegador do seu cliente. Para efetuar isso, siga as seguintes etapas (observe que, dependendo do navegador usado, as etapas podem variar um pouco):
- Selecione Ferramentas na barra de menus do navegador.
- Selecione Opções da Internet... no menu exibido.
- Clique no botão Excluir Arquivos no pop-up exibido.
- Ative Excluir todo conteúdo off-line no pop-up subsequente exibido e, em seguida, clique em OK.
- Depois disso, digite o URL padrão para chamar novamente o sistema.