Páginas em Cache

Top  Previous  Next

O Lumis permite otimização de acesso a páginas através do recurso de cache HTML.

Quando uma página é configurada para usar o cache html, o Lumis Portal gerencia seu acesso gerando um arquivo HTML com o conteúdo correspondente para cada URL. Caso a URL possua parâmetros, por exemplo, em uma página que se deseja exibir o detalhe de uma notícia específica, o Lumis Portal gera um arquivo HTML para cada conjunto de parâmetros reconhecidos.

As páginas que possuem interfaces de interação com o usuário, cujos parâmetros não são conhecidos pelo portal, somente podem ser cacheadas se  estas interfaces estiverem configuradas como client-side. Isso é porque interfaces que possuem render actions, assim como outras requisições de POST, não funcionam normalmente em cache HTML, pois este leva em conta apenas query string e não parâmetros em POST .

Quando a interface é configurada para ter renderização client-side, ela funciona corretamente em uma página com cache HTML habilitado, pois os render actions são renderizados dinamicamente, sem utilizar a infraestrutura de cache HTML. Tais interfaces são: filtros com valores digitados pelo usuário, Participar do serviço de Sala de Chat, login (utilizando o estilo da interface padrão do produto), entre outros. A exceção está para o serviço de Busca já que os parâmetros são passados via query string, e portanto, será gerada um cache html para cada consulta.

Interfaces que executam process actions não podem ser cacheadas.

Há uma limitação quanto às páginas que contém interfaces de adicionar e editar, pertencentes aos serviços de Fórum, Wiki e Blog, por exemplo. Elas não podem ter o cache HTML habilitado. Devido à sua característica dinâmica, não compensa habilitar o cache html para as páginas desses serviços.
 

O cache HTML de página é opcional e precisa ser determinado nas propriedades gerais de cada uma, na administração do portal.

Páginas que Não são cacheadas (páginas dinâmicas) serão sempre exibidas como: /main.jsp?lumPageId= XXXXX.

Já o cache de página (página estática) é exibida com extensão ".HTM". Além disso, o nome do arquivo é um Guid. Como exemplo: http://dominio:porta/contexto/data/pages/8A488A1D22BD37260122BD51809F0652.htm. A página htm é gerada em www/data/page.

Importante ressaltar que a extensão é configurável e com URLs amigáveis o Guid será adaptado.

A URL é aquela definida no elemento <frameworkUrl> da configuração <htmlGeneration> localizado no arquivo lumisdata/config/lumisportalconfig.xml:
 

 <!-- Uncomment to enable customized HTML Generation.  See Lumis Portal documentation for details.

 <htmlGeneration>

 <connectTimeout>30000</connectTimeout>

 <pageRequestTimeout>50000</pageRequestTimeout>

 <frameworkUrl>http://localhost:8080/portal</frameworkUrl>

 <htmlCacheLogNavigation>1</htmlCacheLogNavigation>

 <htmlFileExtension>.htm</htmlFileExtension>

 <shtmlFileExtension>.shtml</shtmlFileExtension>

 <ssi>

         <sendRedirectOnPageNotFound>true</sendRedirectOnPageNotFound>

         <waitBeforeSendRedirect>500</waitBeforeSendRedirect>

 </ssi>

 <expirationLimit>0</expirationLimit>

 </htmlGeneration>

 -->

Neste arquivo encontram-se também outra configurações que podem ser realizadas para o funcionamento desejado de cache de página. Abaixo, os detalhes dessas configurações:

 

• connectTimeout: Número de milissegundos para timeout da conexão do gerador de cache, como padrão 30000;

 

• pageRequestTimeout: tempo em milisegundos de espera para a geração de uma página HTML;

 

• frameworkURL: Permite definir a URL que o gerador de cache utiliza para exibir as páginas HTML . Quando não definida neste parâmetro, ou se a configuração <htmlGeneration> estiver comentada,  será assumido o  valor do parâmetro  <frameworkURL> localizado no início do arquivo lumisPortalConfig.xml;

 

• htmlCacheLogNavigation: Quando habilitado (valor "1"), informações de monitoração do evento de visualização de páginas também são coletadas para páginas com cache HTML;

 

• htmlFileExtension: determina qual extensão será utilizada para as páginas geradas. Por default, é .HTM;

 

• shtmlFileExtension: determina qual extensão será utilizada para as páginas geradas quando estiver sendo utilizada a tecnologia SSI. Por default, é .shtml;

 

• sendRedirectOnPageNotFound: configuração para cache com ssi. Se configurado para "true" (valor default ) permite que, quando o cache com SSI é acessado, mas ainda não foi gerado, efetua um sendRedirect para o browser acessar novamente a página htm, após ela ser gerada.

Este parâmetro faz-se necessário, por exemplo, no cenários de alguns servidores de aplicação utilizarem recurso de cache. Dessa forma, mesmo que a página htm exista, o resultado pode ser como não encontrada, e somente após alguns segundos o cache do servidor de aplicação é atualizado;

 

• waitBeforeSendRedirect: configuração para cache com ssi. Permite configurar o tempo em milissegundos de espera para ser realizado um sendRedirect para o browser acessar novamente a página HTM, após ela ser gerada. O valor default é de 500 milissegundos.

Este parâmetro faz-se necessário, por exemplo, no mesmo cenário descrito acima. Seria o tempo em milissegundos necessário para fazer o próximo sendRedirect, no intervalo utilizado pelo servidor de aplicação para atualizar o seu cache .

 

expirationLimit: configuração para definir a quantidade máxima permitida de webresources que podem ser exipirados em um único evento de mudança de dados de renderização. Caso a quantidade de webresource envolvidos seja superior ao limite definido o processo de expiração não será realizado e será gerado um log informado o problema. O valor padrão da opção expirationLimit é 0 e indica que não existe restrição quanto a quantidade de webresources que podem estar envolvidos em um único evento de expiração de dados de renderização.

As operações de limpeza de cache disponibilizadas no Portal Studio não são submetidas à restrição mencionada anteriormente. Da mesma forma, outras operações podem decidir não usar o limite estipulado através da API durante a emissão do evento. A configuração é utilizada se outro limite não for forçado pela implementação que gera o evento.
 

Observação

 

É importante verificar se os parâmetros configurados no arquivo lumisdata/config/lumisportalconfig.xml  estão corretos, caso as páginas configuradas para serem cacheadas, não estejam sendo geradas como deveriam.

O gerenciador de páginas em cache exibe as seguintes informações:

portalAdm197

 

Arquivo Caminho Dinâmico: Página HTML gerada em www/data/pages;
Criado Em: Informa a data que o cache de determinada página foi criado pela primeira vez, ou após a uma exclusão;
Gerado Em: Informa a data/hora que o cache da página foi atualizado;
Expirado Em: Informa a data/hora que o conteúdo da página HTML foi expirado;
Próxima geração: Informa a data/hora da próxima tentativa de geração do cache. Caso este campo esteja em branco e o cache esteja com status de desatualizado o mesmo poderá ser gerado a qualquer momento.
Fila: Informa o identificador da fila responsável por gerar a página. Uma mesma fila pode ter configurações diferentes em servidores distintos;
Prioridade Atual: A prioridade para geração de página. Quanto maior o valor, maior a prioridade para geração da página. O valor varia conforme demanda ou erro de geração, retornando a zero após geração;
Prioridade da página:utilizado com critério de desempate para páginas com o mesmo valor de Prioridade Atual;
Erros: Exibe a quantidade erros ocorridos durante a tentativa de geração do html. Há o limite default de máximo de 5 erros para que o portal não gere a atualização do cache da página, tornando o status "Desatualizado com erro". Utilizar o botão "Limpar Erros" para que o portal volte a atualizar o cache da página; A configurações detalhadas podem ser encontradas em Filas de Cache.
Status: Informa se o cache da página está:
oAtualizado: página HTML gerada;
oDesatualizado: página HTML expirada. Se acessada pode provocar uma geração sob demanda, ou responder uma versão antiga do cache HTML, dependendo da configuração da fila correspondente e existência ou não da cópia antiga
oDesatualizado com erro: página HTML expirada, mas o limite de erros foi excedido e o portal não gerará mais este cache de página, podendo responder a acessos a esta página com uma versão antiga ou com erro. Pode-se utilizar o botão "Limpar Erros" para que o portal volte a tentar a gerar este cache de página;
oDesabilitado: o cache da página não será nem atualizado e nem desatualizado, independente do processo de geração de cache, e o seu registro não será excluído do gerenciador de páginas em cache;
oEm Geração: Página HTML está sendo gerada;
oEm Geração Desatualizado: página HTML está sendo gerada, mas já houve alguma modificação durante a geração que fará com que o resultado da geração esteja Desatualizado;
ServerId: Informa o identificador do servidor que executou a última geração desta página HTML.

 

A ordenação das páginas HTML pode ser alterada por qualquer uma das outras colunas exibidas no gerenciador.

A geração de cache é centralizada em threads que podem utilizar dois modos para geração de página HTML: geração sob demanda e geração automática. Nos dois modos, o browser solicita a requisição, através de uma URL. Se o cache estiver desatualizado é solicitado para o gerador gerar essa página. Após a geração é entregue para o browser a página gerada. O gerador é um processo em paralelo que acontece com a geração sob demanda que agiliza a geração das páginas desatualizadas.

Limpar Cache do canal ou da Página

O Lumis permite provocar a limpeza de cache pela árvore de canal através das propriedades descritas Limpeza de Cache.

Funções Administrativas do Gerenciador de Cache

Gerar: Gera os caches de página HTML selecionados, independente de seu estado atual;
Desabilitar Geração : A opção "Desabilitar Geração" desabilita globalmente todas as gerações de páginas HTML. Isso significa que os caches que se encontram com status "Atualizado", o usuário continuará acessando uma página HTML, a não ser que ocorram alterações estruturais e de conteúdo, fazendo com que o cache fique desatualizado.

Desabilitar Geração é util, por exemplo, em um cenário de importação/exportação de ambiente com grande número de acessos de usuários. Durante a atualização de canais e páginas, o gerador HTML limpa os caches e, com isso,  se houver acesso aos canais durante a importação, o usuários podem acessar páginas antigas.

Para desabilitar a geração de cache de uma página específica, acessar suas propriedades via right-click, e atribuir o valor "Não" para o campo Gerar arquivo html. Dessa forma, para cada cache HTML da página, o Status será "Desabilitado", significando que o usuário não acessará mais uma página HTML e sim uma página dinâmica (JSP);

Limpar Erros: Permite zerar a quantidade de erros ocorridos durante a tentativa de geração de cache de uma página. Útil para migrar páginas do estado de Desatualizado com erro para o estado Desatualizado, permitindo assim que elas voltem a ser geradas;
Expirar páginas do cache: Permite expirar caches de páginas HTML. Para configurar, navegue até a interface de Administração de Páginas em Cache (Cache HTML), clique no botão ‘Expirar páginas do cache’ e um popup será aberto.

portalStudio267

Insira os filtros desejados, como demonstra a imagem a seguir:

portalStudio266
 

Para os campos canal, página e template de página a seta para direita abre a interface que possibilita a seleção do elemento desejado, o “X” em vermelho ao lado apaga o input à esquerda que contem o respectivo valor.

Para os caminhos amigáveis, o input ao lado do texto caminho amigável possibilita a adição do valor na lista, também é possível acionar o botão clicando a tecla ‘ENTER’, após inserido na lista o caminho inserido pode ser apagado clicando no ‘X’ pertencente a mesma linha, ou pode trazer o valor para edição se for clicado sobre seu texto, (esta operação implica em retirar o caminho clicado da lista e inserir o seu valor no input, a partir deste momento o procedimento é equivalente a uma adição comum).

Clique Ok. Um relatório de parâmetros será exibido no painel de confirmação de expiração, note que além dos parâmetros selecionados, existe um campo ‘Número de cache de páginas a serem expirados’ que traz a quantidade de caches a serem expirados, para prosseguir com a expiração clique em confirmar, caso contrário clique em voltar para alterar os filtros.

portalStudio265

 
     Descrição dos filtros:
 

oLimpar caches a partir de: data a partir da qual serão expirados os caches, único filtro obrigatório, é sempre carregado com a data de três dias antes da data atual;
oPágina: seleciona uma página a ser expirada;
oCanal: seleciona um canal a partir do qual serão expirados os caches abaixo deste;
oTemplate de página: seleciona template de página a partir do qual as páginas que usam o mesmo serão selecionadas para a expiração de cache;
oUrls amigáveis que comecem com: Conjunto de caminhos amigáveis a partir dos quais paginais e canais que comecem com qualquer elemento deste conjunto terão caches expirados.
oUrls amigáveis que não comecem com: Conjunto de caminhos amigáveis a partir dos quais paginais e canais que comecem com qualquer elemento deste conjunto não terão caches expirados.

Cada um dos filtros acima é combinado com os demais (se preenchidos) usando um ‘and’, aplicando-se às páginas e canais que pertençam a interseção destes elementos, ou seja, se um canal for selecionado e uma página que não pertença a mesma árvore deste canal, a interseção será vazia, logo não haverá caches a serem expirados.

   
  Comportamento da expiração das páginas:

Ao selecionar um conjunto de caches de páginas a ser expirada, esta implicará na expiração dos canais ancestrais de cada página. O inverso não é feito, ou seja, caso um canal tenha sido selecionado para ser expirados, mas seus filhos não estejam na mesma seleção, apenas o canal em questão é expirado.

Recalcular: Recalcula o campo fila de caches de página HTML, utilizando as mesma regras de quando a entrada de cache é criada. Após selecionar a opção "Recalcular", poderá ser indicado o canal da área a ser processada. Todos os caches de página HTML pertencentes a esse canal ou a sua hierarquia serão processados.

Observação

 

 

É necessário que o usuário LumisPageCacheUser tenha permissão de visualização da instância de serviço e da página da qual será gerada o HTML;
 
Para um ambiente em cluster, todas as configurações do lumisportalconfig.xml devem ser configuradas em todos os servidores do cluster, e elas são independentes para cada um deles;

 

Para que uma interface de lista com paginação funcione corretamente em cache HTML, é necessário utilizar o estilo "Default para cache HTML" (GenericListForHtmlFile.xsl),além da interface estar configurada como client side script. Desta forma, será gerado o HTML de paginação com as referências corretas;
 
Alterações estruturais no navegador (adição/exclusão de canais e páginas) não atualizarão o cache das páginas que possuem a interface Menu do serviço Barra de Navegação. Isso ocorre porque um serviço que utiliza funcionalidades mas que não administra dados, não há como saber quando a informação a informação foi alterada;
 
Se o gerador detecta que ocorreu erro na renderização de alguma interface da página, será considerado que ocorreu um erro na geração da página;
 
Se uma página está com cache HTML habilitado e está configurada para ser servida apenas em HTTPS (independente destas configurações estarem especificadas diretamente ou por herança), a página se comportará como se o cache HTML estivesse desabilitado. Isso será visível no Gerenciador de Cache de Páginas.

Lumis Portal 8.2.2.160411
Copyright © 2006â??2016 Lumis EIP Tecnologia da Informação LTDA. Todos os direitos reservados.