Configurando o Gerenciador de Sessões HTTP para Vários Servidores de Aplicativos

O WebSphere eXtreme Scale é fornecido com uma implementação de gerenciamento de sessões que substitui o gerenciador de sessões padrão para um contêiner da web. Esta implementação fornece replicação de sessão, alta disponibilidade, melhor escalabilidade e opções de configuração. É possível ativar o gerenciador de replicação de sessão do WebSphere eXtreme Scale e a inicialização de contêiner de ObjectGrid integrada genérica.

Sobre Esta Tarefa

É possível usar o gerenciador de sessões HTTP com outros servidores de aplicativos que não estejam executando o WebSphere Application Server, como WebSphere Application Server Community Edition. Para configurar outros servidores de aplicativos para usar a grade de dados, você deve unir seu aplicativo e incorporar os arquivos Java archive (JAR) do WebSphere eXtreme Scale no seu aplicativo.

Procedimento

  1. Una seu aplicativo para que ele possa utilizar o gerenciador de sessões. Para usar o gerenciador de sessões, você deve incluir as declarações de filtro apropriadas nos descritores de implementação da Web para o aplicativo. Além disso, os parâmetros de configuração do gerenciador de sessões são passados no gerenciador de sessões no formato de parâmetros de inicialização de contexto do servlet nos descritores de implementação. Há três formas nas quais é possível introduzir essas informações no seu aplicativo:
    • Script addObjectGridFilter:

      Use o script de linha de comandos fornecido junto com o eXtreme Scale para unir um aplicativo com as declarações de filtro e com as configuração no formato de parâmetros de inicialização de contexto do servlet. O script wxs_home/session/bin/addObjectGridFilter.sh|bat utiliza dois parâmetros: o caminho absoluto para o arquivo de archive corporativo (EAR) ou o arquivo web archive (WAR) que você deseja unir e o caminho absoluto para o arquivo de propriedades do splicer que contém várias propriedades de configuração. O formato de uso deste script é o seguinte:

      [Windows]
      addObjectGridFilter.bat <ear_or_war_file> <splicer_properties_file>
      [Unix]
      addObjectGridFilter.sh <ear_or_war_file> <splicer_properties_file>

      [Unix] Exemplo usando o eXtreme Scale instalado em um diretório independente no UNIX:

      1. cd wxs_home/session/bin
      2. addObjectGridFilter.sh /tmp/mySessionTest.ear wxs_home/session/samples/splicer.properties
      O filtro do servlet que é unido mantém os padrões para os valores de configuração. É possível substituir estes valores-padrão com opções de configuração especificados no arquivo de propriedades no segundo argumento. Para obter uma lista dos parâmetros que podem ser utilizados, consulte Parâmetros de inicialização do contexto do servlet.

      É possível modificar e usar o arquivo splicer.properties de amostra que é fornecido com a instalação do eXtreme Scale. Também é possível usar o script addObjectGridServlets, que insere o gerenciador de sessões estendendo cada servlet. No entanto, o script recomendado é o addObjectGridFilter.

    • Script de construção Ant:

      O WebSphere eXtreme Scale é fornecido com um arquivo build.xml que pode ser usado pelo Apache Ant, que é incluído na pasta was_root/bin de uma instalaçãoWebSphere Application Server. É possível modificar o arquivo build.xml para alterar as propriedades de configuração do gerenciador de sessões. As propriedades de configuração são idênticas aos nomes de propriedades no arquivo splicer.properties. Depois que o arquivo build.xml tiver sido modificado, chame o processo Ant executando ant.sh, ws_ant.sh (UNIX) ou ant.bat, ws_ant.bat (Windows).

    • Atualize o descritor da web manualmente:

      Edite o arquivo web.xml que é empacotado com o aplicativo da Web para incorporar a declaração do filtro, seu mapeamento de servlet e os parâmetros de inicialização de contexto do servlet. Não use este método porque ele é propenso a erros.

    Para obter uma lista dos parâmetros que podem ser utilizados, consulte Parâmetros de inicialização do contexto do servlet.
  2. Incorpore os arquivos JAR do gerenciador de replicação de sessão do WebSphere eXtreme Scale ao seu aplicativo. É possível integrar os arquivos ao diretório WEB-INF/lib do módulo aplicativo ou ao caminho de classe do servidor de aplicativos. Os arquivos JAR necessários variam dependendo do tipo de contêineres que você está usando:
    • Servidores de contêiner remotos: ogclient.jar e sessionobjectgrid.jar
    • Servidores de contêiner integrados: objectgrid.jar e sessionobjectgrid.jar
  3. Opcional: Se os servidores de contêiner remotos forem usados, inicie os servidores de contêiner. Veja detalhes em Iniciando Servidores de Contêiner.
  4. Implemente o aplicativo. Implemente o aplicativo com seu conjunto normal de etapas para um servidor ou cluster. Após implementar o aplicativo, é possível iniciar o aplicativo.
  5. Acesse o aplicativo. É possível acessar o aplicativo, que interage com o gerenciador de sessões e o WebSphere eXtreme Scale.

O que Fazer Depois

É possível alterar a maioria dos atributos de conexão para o gerenciador de sessões quando você instrumenta seu aplicativo para utilizar o gerenciador de sessões. Esses atributos incluem variações para o tipo de replicação (síncrona ou assíncrona), para o tamanho da tabela de sessão na memória e assim por diante. Não considerando os atributos que podem ser alterados no momento da instrumentação do aplicativo, os únicos outros atributos de configuração que podem ser alterados após a implementação do aplicativo são os atributos que estão relacionados à topologia em cluster do servidor WebSphere eXtreme Scale e a maneira pela qual seus clientes (gerenciadores de sessões) se conectam a eles.
Comportamento do cenário remoto: Se a grade de dados inteira que está hospedando os dados da sessão de aplicativo ficar inacessível a partir do cliente do contêiner da web, o cliente em vez disso usará o contêiner da web de base do servidor de aplicativos para gerenciamento de sessões. A grade de dados pode estar inatingível nos cenários a seguir:
  • Um problema de rede entre o contêiner da web e os servidores de contêiner remotos.
  • Os processos do servidor de contêiner remoto foram interrompidos.
O número de referências de sessão mantidas na memória, especificado pelo parâmetro sessionTableSize, ainda é mantido quando as sessões são armazenadas no contêiner da web de base. As sessões usadas menos recentemente são invalidadas a partir do cache de sessão do contêiner da web quando o valor sessionTableSize é excedido. Se a grade de dados remota se tornar disponível, as sessões que foram invalidadas a partir do cache de contêiner da web poderão recuperar os dados da grade de dados remota e carregar os dados em uma nova sessão. Se a grade de dados remota inteira não estiver disponível e a sessão for invalidada a partir do cache de sessão, os dados da sessão do usuário serão perdidos. Devido a esse problema, não encerre a grade de dados remota de produção inteira quando o sistema estiver sendo executado sob carga.