Gerenciador de Páginas em Cache
Permite administrar as páginas em cache.
O LumisXP 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 seu acesso é gerenciado gerando um arquivo estático com o conteúdo correspondente.
Todo arquivo estático de Cache HTML é cacheado por Geradores de Páginas distribuídos nos servidores conforme configuração. Cada gerador possui um conjunto de threads determinados pela configuração de seu perfil de geração.
Os arquivos cacheados são organizados em filas permitindo configurar geradores independentes para conjuntos de páginas. As filas de geração definem a estratégia de cache de suas páginas, por exemplo, se a geração é apenas sob demanda, e se os arquivos HTMLs devem ser removidos quando o cache é limpo.
Resolução de cache de WebResource
Ao executar uma página, o LumisXP analisa o seu HTML procurando URLs para páginas configuradas com Cache HTML. Para cada URL encontrada, é gerado um WebResource. Ao criar um WebResource, as propriedades das páginas são lidas determinando o seu comportamento. Nesse momento é calculada a fila do WebResource.
O comportamento do WebResource é gerado apenas quando o mesmo é criado. Caso o LumisXP encontre o WebResource já persistido, o mesmo será reaproveitado e suas propriedades não serão re-geradas. Com isso, as propriedades da página que por ventura foram atualizadas, não serão refletidas automaticamente no comportamento do WebResource.
As propriedades são configuradas através da definição de Property Bags:
- lumis.portal.page.cache.IPageCacheQueueResolver: Define a classe Java utilizada para determinar o id da fila utilizada. Caso essa propriedade não seja configurada, o id da fila será o id definido na propriedade lumis.portal.page.cache.queueId.
- lumis.portal.page.cache.queueId: Define o id da fila default a ser utilizado. Caso essa propriedade não seja configurada, o valor utilizado será: default.
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 LumisXP 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 LumisXP 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:
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
estiver comentada, será assumido o valor do parâmetro 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.
Veja também
Permissionamento
- Gerenciar instância de serviço: Permite gerenciar todos os dados dessa instância de serviço, incluindo apagar ele como todo.
- Editar conteúdo de instância de serviço: Permite gerenciar todos os dados dessa instância de serviço com perfil de publicador.
- Visualizar instância de serviço: Permite visualizar dados públicos dessa instância de serviço.