Montando de Forma que os Dados da Sessão Possam Ser Compartilhados

Por padrão, o recurso de gerenciamento de sessões suporta a definição de escopo da sessão por módulo da web de acordo com a especificação de API Servlet 2.3 e posterior. Apenas servlets no mesmo módulo da Web podem acessar os dados associados a uma sessão em particular. Porém, é possível usar o objeto IBMApplicationSession ou a extensão IBM®, contexto de sessão compartilhado, para compartilhar dados fora do escopo do módulo da Web.

Sobre Esta Tarefa

O objeto IBMApplicationSession é um objeto de sessão pai que pode ser recuperado por uma sessão do módulo da web e pode compartilhar atributos da sessão em todos os módulos da web em um aplicativo em nível de negócios. O escopo padrão para o aplicativo de nível de negócios é o aplicativo corporativo. A opção de contexto de sessão compartilhada estende também o escopo dos atributos de sessão. Utilizando a extensão de contexto de sessão compartilhada, existe apenas um objeto de sessão para o aplicativo de nível de negócios inteiro ou para o aplicativo corporativo padrão.

Se você estiver utilizando uma sessão compartilhada para um aplicativo de nível de negócios, os arquivos de classe para todos os objetos colocados na sessão deverão existir em uma biblioteca compartilhada isolada e ser comum entre todos os aplicativos.

O benefício de usar o método IBMApplicationSession é que cada módulo da Web pode manter sua própria sessão assim como ter uma referência à sessão compartilhada.

Se estiver migrando um aplicativo de uma versão anterior do produto, o método IBMApplicationSession precisará de uma mudança na lógica de aplicativo do aplicativo.

Restrição: Para usar uma sessão compartilhada, você deve instalar todos os aplicativos dentro de um aplicativo em nível de negócios em um servidor fornecido. Não é possível dividir o aplicativo corporativo por servidores. Por exemplo, não é possível usar esta opção quando um aplicativo corporativo em “BLA1” estiver instalado em um servidor e um segundo aplicativo corporativo também em “BLA1” estiver instalado em um servidor diferente. Em tais instalações de divisão, os aplicativos podem compartilhar atributos de sessão pelos módulos da Web usando sessões distribuídas, mas a integridade dos dados da sessão é perdida quando o acesso simultâneo a uma sessão é feito em módulos da Web diferentes. Também restringe severamente o uso de alguns recursos de gerenciamento de sessões, como TIME_BASED_WRITES.

Para aplicativos corporativos nos quais esta extensão de contexto de sessão compartilhada é ativada, a configuração de gerenciamento de sessões no módulo da web dentro do aplicativo corporativo é ignorada. Em seguida, a configuração de gerenciamento de sessões definida no aplicativo corporativo é usada se o gerenciamento de sessões é sobrescrito no nível do aplicativo corporativo. Caso contrário, a configuração de gerenciamento de sessões no contêiner da web é usado. Se diversos aplicativos corporativos estiverem sendo usados dentro de um aplicativo em nível de negócios, a configuração de gerenciamento de sessão deve ser comum entre todos os aplicativos e módulos da Web dentro desse aplicativo em nível de negócios.

Listeners HttpSession que são definidos em todos os módulos da web dentro do aplicativo em nível de negócios ou aplicativo corporativo são chamados para eventos de sessão. A ordem de chamada do listener não é garantida.

Conclua o seguinte para compartilhar dados da sessão no aplicativo em nível de negócios.

Procedimento

  1. Conclua o seguinte para compartilhar dados da sessão utilizando o objeto IBMApplicationSession no código do aplicativo.
    1. Recupere o objeto de sessão
      HttpSession session = request.getSession();
    2. Converta esse objeto em um objeto IBMSession e chame o método getIBMApplicationSession.
      IBMApplicationSession appSession = ((IBMSession)session).getIBMApplicationSession();
    3. Utilize o appSession como um objeto de sessão normal.
  2. Faça o seguinte para compartilhar dados de sessão utilizando a extensão de contexto de sessão compartilhada.
    1. Inicie uma ferramenta de montagem.
    2. Na ferramenta de montagem, clique com o botão direito do mouse no aplicativo (arquivo EAR) que você deseja compartilhar e clique em Abrir com > Editor do Descritor de Implementação.
    3. No editor de descritor de implementação do aplicativo da ferramenta do conjunto, selecione Contexto da Sessão Compartilhada em Extensões do WebSphere. Certifique-se de que a definição de classe de atributos colocados na sessão estão disponíveis para todos os módulos da Web no aplicativo corporativo. O contexto de sessão compartilhada não atende totalmente aos requisitos das especificações.
    4. Salve o arquivo (EAR) do aplicativo. Na ferramenta de montagem, após fechar o editor do descritor de implementação do aplicativo, confirme que você deseja salvar as alterações feitas no aplicativo.

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprs_sharing_data
Nome do arquivo: tprs_sharing_data.html