Configurando o Gerenciador de Sessões HTTP com WebSphere Application Server

Enquanto o WebSphere Application Server fornece a função de gerenciamento de sessões, o desempenho diminui conforme o número de solicitações aumenta. O WebSphere eXtreme Scale vem com uma implementação de gerenciamento de sessões que fornece opções de replicação de sessão, alta disponibilidade, melhor escalabilidade e configuração mais firme.

Antes de Iniciar

Sobre Esta Tarefa

O gerenciador de sessão HTTP WebSphere eXtreme Scale suporta servidores integrados e remotos para armazenamento em cache.
  • Cenário Integrado

    No cenário integrado, os servidores WebSphere eXtreme Scale são posicionados no mesmo processo onde os servlets são executados. O gerenciador de sessões pode ser comunicar diretamente com a instância do ObjectGrid local, evitando atrasos de rede caros.

    Se você estiver usando o WebSphere Application Server, coloque os arquivos wxs_home/session/samples/objectGrid.xml e wxs_home/session/samples/objectGridDeployment.xml fornecidos nos diretórios META-INF dos seus arquivos Web Archive (WAR). O eXtreme Scale detecta automaticamente esses arquivos quando o aplicativo é iniciado e inicia automaticamente os contêineres do eXtreme Scale no mesmo processo do gerenciador de sessões.

    É possível modificar o arquivo objectGridDeployment.xml dependendo se você deseja usar a replicação síncrona ou assíncrona e de quantas réplicas você deseja configurar.

  • Cenário dos Servidores Remotos

    No cenário de servidores remotos, os servidores de contêiner são executados em processos diferentes dos servlets. O gerenciador de sessões se comunica com um servidor de contêiner remoto. Para usar um servidor de contêiner remoto, conectado à rede, o gerenciador de sessões deve ser configurado com os nomes de host e números de porta do domínio do serviço de catálogo. O gerenciador de sessões, então, usa uma conexão do cliente do eXtreme Scale para se comunicar com o servidor de catálogos e com os servidores de contêiner.

    Se os servidores de contêiner forem iniciados em processos independentes, inicie os contêineres do eXtreme Scale com os arquivos objectGridStandAlone.xml e objectGridDeploymentStandAlone.xml que são fornecidos no diretório de amostras do gerenciador de sessões.

Procedimento

  1. Una seu aplicativo para que ele possa utilizar o gerenciador de sessões. Para usar o gerenciador de sessões, é necessário 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á várias maneiras pelas quais é possível introduzir essas informações no seu aplicativo:
    • Combinação Automática com WebSphere Application Server

      É possível configurar seu aplicativo para usar o gerenciador de sessões HTTP do WebSphere eXtreme Scale quando instalar seu aplicativo. Pode também editar o aplicativo ou a configuração do servidor para usar o gerenciador de sessões HTTP do WebSphere eXtreme Scale. Consulte Unindo Automaticamente Aplicativos para Gerenciamento de Sessões HTTP no WebSphere Application Server para obter mais informações.

    • Combinação Automática do Aplicativo com Propriedades Customizadas

      Não é necessário conectar seus aplicativos manualmente quando o aplicativo está em execução no WebSphere Application Server ou no WebSphere Application Server Network Deployment.

      Inclua uma propriedade customizada para uma célula ou um servidor para configurar o arquivo splicer.properties para todos os aplicativos da Web nesse escopo. Use as seguintes etapas para configurar a propriedade customizada:

      1. No console administrativo WebSphere Application Server, navegue até o caminho correto para onde deseja configurar a propriedade customizada para indicar o local do arquivo splicer.properties.
        • Para configurar a propriedade customizada para todos os aplicativos ou um aplicativo específico, clique em Administração do Sistema > Célula > Propriedades Customizadas.
        • Para configurar a propriedade customizada para aplicar a todos os aplicativos em um servidor de aplicativos específico, clique em Servidor de Aplicativos > <server_name> > Administração > Propriedades Customizadas. O nome da propriedade é com.ibm.websphere.xs.sessionFilterProps e seu valor é o local do arquivo splicer.properties que seus aplicativos requerem. Um caminho de exemplo para o local de um arquivo é o seguinte: /opt/splicer.properties.
      2. Inclua a propriedade customizada com.ibm.websphere.xs.sessionFilterProps. O valor desta propriedade customizada fornece o local do arquivo splicer.properties a ser editado. O arquivo existe no gerenciador de implementação. Se desejar indicar o arquivo splicer.properties para um aplicativo específico com uma propriedade customizada no nível da célula, insira o nome da propriedade customizada como:<application_name>,com.ibm.websphere.xs.sessionFilterProps, em que application_name indica o nome do aplicativo ao qual deseja aplicar a propriedade customizada.
      Importante: Assegure que o arquivo splicer.properties atualizado esteja no mesmo caminho em todos os nós que contêm um servidor de aplicativos que hospeda o aplicativo ou os aplicativos que estão sendo unidos para replicação de sessão.

      A célula, o servidor e o escopo do aplicativo são escopos disponíveis e ficam disponíveis apenas durante a execução em um gerenciador de implementação. Se um escopo diferente for necessário, combine manualmente seus aplicativos da web.

      Lembre-se: Além disso, observe que a opção de combinação automática funciona apenas se todos os nós que executam o aplicativo contiverem o arquivo splicer.properties no mesmo caminho. Para ambientes mistos que contêm nós Windows e UNIX, esta opção não é possível, portanto, você deve conectar o aplicativo manualmente.
    • Combine o aplicativo com o 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. Para uma implementação do WebSphere Application Server, este script está localizado em <was_home>/optionalLibraries/ObjectGrid/session/bin/addObjectGridFilter.bat/sh. Para um implementação independente, o script está em WXS_HOME/ObjectGrid/session/bin/addObjectGridFilter.sh/bat. O script oddObjectGridFilter usa dois parâmetros:
      • Aplicativo - caminho absoluto para o archive corporativo para ser unido
      • Caminho absoluto para o arquivo splicer.properties que contém várias propriedades de configuração.

      O formato de uso deste script é o seguinte:

      [Windows]
      addObjectGridFilter.bat [ear_file] [splicer_properties_file]
      [Unix]
      addObjectGridFilter.sh [ear_file] [splicer_properties_file]
      [Unix] Exemplo do uso do eXtreme Scale instalado no WebSphere Application Server no Unix:
      1. cd wxs_home/optionalLibraries/ObjectGrid/session/bin
      2. addObjectGridFilter.sh /tmp/mySessionTest.ear was_root/optionalLibraries/ObjectGrid/session/samples/splicer.properties

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

      1. cd was_root/session/bin
      2. addObjectGridFilter.sh /tmp/mySessionTest.ear was_root/session/samples/splicer.properties
      O filtro do servlet 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.

    • Combine manualmente o aplicativo com o 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 de modificar o arquivo build.xml, chame o processo Ant executando o seguinte comando:
      • [Unix] ant.sh, ws_ant.sh
      • [Windows] ant.bat, ws_ant.bat
      (UNIX) ou (Windows).
    • Atualize manualmente o descritor da Web

      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. 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.
  3. 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: replicação síncrona ou assíncrona, tamanho da tabela de sessão em 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 de um cenário remoto: Se a grade de dados inteira que hospeda os dados da sessão de aplicativo estiver inacessível a partir do cliente do contêiner da web, o cliente usará no lugar o contêiner da web de base no WebSphere Application Server para o 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.