O WebSphere Message Broker salva os dados que ele recupera a partir do WebSphere Service Registry and Repository (WSRR) em um cache local.
Os nós WSRR, EndpointLookup e RegistryLookup, podem recuperar dados que foram armazenados no cache do WSRR do Broker por uma consulta anterior, melhorando o desempenho e o rendimento da mensagem. A primeira ocorrência de cada consulta é sempre enviada ao WSRR. Por padrão, esta atividade ocorre quando um nó WSRR emite pela primeira vez uma consulta específica, embora seja possível preencher previamente o cache, quando o broker é iniciado, usando as consultas descritas aqui.
O cache é configurado individualmente para cada broker usando o WebSphere Message Broker Explorer ou o comando mqsichangeproperties; para obter detalhes, consulte Propriedades de Serviços Configuráveis.
Desative o cache configurando o parâmetro needCache como false. Por padrão, o cache é ativado, mas os nós do WSRR podem operar sem o cache. Se o cache estiver desativado, cada consulta emitida pelo nó será enviada ao WSRR, assegurando que os resultados da consulta sempre refletirão o conteúdo atual do registro. Esta atividade pode afetar o desempenho.
Pré-carregue o cache configurando o parâmetro predefinedCacheQueries. Por padrão, nenhum item é pré-carregado no cache e a primeira ocorrência de cada consulta é enviada ao WSRR. É possível especificar consultas predefinidas que são executadas quando o broker é iniciado, ou quando um fluxo de mensagens contendo fluxos de WSRR é implementado pela primeira vez, preenchendo o cache para uso por nós do WSRR subsequentes. Especificando consultas predefinidas, o desempenho pode ser afetado na inicialização, em vez de na primeira ocorrência de uma consulta no tempo de execução. O parâmetro predefinedCacheQueries é uma lista de expressões de consulta XPath do WSRR separadas por ponto e vírgula, cada uma com uma especificação de profundidade opcional. O rastreio do usuário mostra a expressão de consulta XPath do WSRR gerada por um nó WSRR.
Altere o valor de tempo limite de expiração de cache configurando o parâmetro timeout. Os resultados em cache de uma consulta são descartados após o tempo especificado ter decorrido. A próxima ocorrência da consulta é enviada para WSRR e o novo resultado é inserido no cache. Se o conteúdo do registro provavelmente for alterado com frequência, você poderá especificar um valor de tempo limite de expiração mais curto para que alterações sejam selecionadas mais rápido. Esta atividade afeta o desempenho pois mais consultas são enviadas ao WSRR.
Ative a notificação de cache configurando o parâmetro enableCacheNotification como true e configurando as propriedades initialContextFactory e locationJNDIBinding apropriadamente para seu servidor WSRR. Por padrão, a notificação de cache está desativada. A notificação de cache é um método mais flexível que o tempo limite de expiração para atualizar dados em cache porque ela permite que entidades WSRR individuais sejam atualizadas no momento em que elas forem modificadas no WSRR.
Se a notificação do cache estiver ativada, o cache se inscreverá em eventos que estejam ocorrendo no WSRR e será notificado quando um objeto for atualizado ou excluído no WSRR. O objeto é descartado a partir do cache. Se o parâmetro refreshQueriesAfterNotification for configurado como true, o cache será atualizado com a nova versão do objeto imediatamente. Se o parâmetro refreshQueriesAfterNotification for configurado como false, o cache será atualizado na próxima vez que uma consulta relevante for emitida por um nó WSRR.