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>
</htmlGeneration>
-->
|
Neste arquivo encontram-se também outras configurações que podem ser realizadas para o funcionamento desejado de cache de página. Estas configurações estão detalhadas em Configurações do Portal.
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](portaladm197.jpg)
• | 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; |
• | 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. É configurável através das propriedades lumis.portal.pagecache.resource.priority e lumis.portal.pagecache.resource.priority.withparameters em Cache HTML; |
• | 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á: |
o | Atualizado: página HTML gerada; |
o | Desatualizado: 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 |
o | Desatualizado 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; |
o | Desabilitado: 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; |
o | Em Geração: Página HTML está sendo gerada; |
o | Em 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](portalstudio267.jpg)
Insira os filtros desejados, como demonstra a imagem a seguir:
![portalStudio266](portalstudio266.jpg)
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](portalstudio265.jpg)
Descrição dos filtros:
o | Limpar 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; |
o | Página: seleciona uma página a ser expirada; |
o | Canal: seleciona um canal a partir do qual serão expirados os caches abaixo deste; |
o | Template 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; |
o | Urls 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. |
o | Urls 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. |
|
|