No CQ, o Dispatcher é a ferramenta de armazenamento em cache e de balanceamento de carga da Adobe. As opções de armazenamento em cache no CQ são configuradas através do arquivo dispatcher.any de configuração. Para permitir um mecanismo de armazenamento em cache robusto, o arquivo Dispatcher.any fornece várias opções de configuração. Para obter uma descrição do Dispatcher, consulte Documentação do Dispatcher CQ.

Este artigo aborda os problemas que você poderia enfrentar ao ativar o armazenamento em cache em uma instância do CQ usando o Dispatcher.

Ativar a depuração no Dispatcher

Ao configurar o Dispatcher do CQ, assegure-se de que o mecanismo de log do Dispatcher esteja no lugar.

Para o servidor da web Apache, assegure-se de que as seguintes linhas estejam no arquivo http.conf:

<IfModule disp_apache2.c>
DispatcherConfig conf/dispatcher.any
DispatcherLog logs/dispatcher.log

# log level for the dispatc her log
# 0 Errors
# 1 Warnings
# 2 lnfos
# 3 Debug
DispatcherLogLevel 3

# if turned to 1, the dispatcher looks like a normal module
#since build 5210, this setting has no eff ect , since it used to crash
# apache if set to 0.
DispatcherNoServerHeader 1

# if turned to 1, request to I are not handled by the dispatcher
# use the mod_alias t hen for the correct mapping
DispatcherDeclineRoot 0
</IfModule>

A linha DispatcherLog logs/dispatcher.log indica o nome do arquivo de log do Dispatcher.

A linha, DispatcherLogLevel 3, indica o nível de mensagens a serem registradas.

Assim que você reiniciar o servidor da Web, o arquivo dispatcher.log será criado com informações sobre a inicialização do Dispatcher.

Você pode alterar o nome e a localização do arquivo de log em relação ao diretório-raiz do servidor da web.

Com o cache do Dispatcher ativado, navegue para qualquer página no site do CQ e abra o dispatcher.log. Você vê as seguintes linhas:

[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] cachefile does not exist or is a directory: \Library\WebServer\cache\index.html
[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] try to create new cachefile: \Library\WebServer\cache\index.html
[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] cache-action for [/index.html]: CREATE

Observação:

A instrução de ação do cache no arquivo de log é um indicador que você pode usar para identificar o resultado da última chamada de página.

Problema

Como faço para depurar um problema em que nenhum conteúdo está salvando no cache do Dispatcher?

Os dados da página do servidor da Web são armazenados em cache no local especificado no atributo /docroot da seção /cache no dispatcher.any. Quando você identifica que as informações específicas da página não estão sendo armazenadas em cache, vá para o dispatcher.log. No final do log, há entradas para a última chamada de página.

Erro "Cache desativado devido à sequência de consulta" encontrado no log

[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] checking [/libs/cq/security/userinfo.json]
[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] Caching disabled due to query string: cq_ck=1350373444666
[Tue Oct 16 13:14:04 2012] [D] [1376(1532)] cache-action for [/libs/cq/security/userinfo.json]: NONE

As solicitações que contêm uma string de consulta (como http://www.mysite.com/search?q=adobe) levam à saída dinâmica que depende da sequência de consulta. Na maioria dos casos, a saída da solicitação de sequência de consulta não deve ser armazenada em cache.

Solução

Se você determinar que alguns parâmetros de consulta não estão diretamente relacionados à saída, configure o Dispatcher para ignorar os parâmetros da sequência de consulta da solicitação.

Na seção ignoreUrlParams, especifique parâmetros de sequências de consulta para ignorar.

Nesta configuração de exemplo, as solicitações de URL com o parâmetro de sequência de consulta "q" são armazenadas em cache.

/ignoreUrlParams
 {
 /0001 { /glob "*" /type "deny" }
 /0002 { /glob "q" /type "allow" }
 }

Para a configuração acima, o dispatcher trata os seguintes pedidos como idênticos.

http://www.mysite.com/search?q=adobe
http://www.mysite.com/search?q=dispatcher
http://www.mysite.com/search

Erro "sem cache devido ao cabeçalho de autorização" encontrado no log

[Tue Oct 16 13:39:17 2012] [D] [1376(1532)] checking [/content/geometrixx-outdoors/en/unlimited-blog.html]
[Tue Oct 16 13:39:17 2012] [D] [1376(1532)] no cache due to authorization header.
[Tue Oct 16 13:39:17 2012] [D] [1376(1532)] cache-action for [/content/geometrixx-outdoors/en/unlimited-blog.html]: NONE

Solução

Veja a discussão do fórum a seguir para uma resolução deste problema: Dispatcher servindo, mas não fazendo cache, páginas CQ5

Como faço para depurar arquivos de cache que não estão sendo atualizados?

O mecanismo de armazenamento em cache do CQ atualiza o registro de data e hora de um arquivo vazio (especificado pelo atributo / statfile em dispatcher.log) para invalidar o cache. Portanto, quando uma página é replicada, o agente Dispatcher Flush envia uma solicitação ao servidor da Web. O Dispatcher reconhece a solicitação e abre o arquivo .stat. Em seguida, ele altera 1 byte no arquivo para atualizar o registro de data e hora. Essa alteração invalida o cache e faz com que o Dispatcher libere o cache.

Solução

Como faço para depurar se nada estiver funcionando?

Você pode encontrar um cenário quando seus sites exibirem apenas páginas em branco.

Erro "rejeições de filtro" encontradas no log

[Tue Oct 16 13:47:18 2012] [D] [2880(1332)] cache-action for [/libs/wcm/core/content/siteadmin.infinity.json]: NONE
[Tue Oct 16 13:47:18 2012] [D] [2880(1532)] connected to render publish1 (127.0.0.1:4502)
[Tue Oct 16 13:47:18 2012] [D] [2880(1332)] Filter rejects GET /libs/wcm/core/content/siteadmin.infinity.json HTTP/1.1

Solução

A seção de filtro do dispatcher.qual define as solicitações que o Dispatcher manipula.

Certifique-se de que o /type esteja configurado para "permitir" que as páginas e o conteúdo do site sejam disponibilizados para visualização.

No exemplo acima, o erro é lançado para o "siteadmin.infinity.json".

Para as seguintes linhas da seção /filters do dispatcher.any o tipo está definido como "deny"

      # Deny content grabbing
      /0081 { /type "deny"  /glob "GET *.infinity.json*" }
      /0082 { /type "deny"  /glob "GET *.tidy.json*"     }
      /0083 { /type "deny"  /glob "GET *.sysview.xml*"   }
      /0084 { /type "deny"  /glob "GET *.docview.json*"  }
      /0085 { /type "deny"  /glob "GET *.docview.xml*"  }

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online