Considerações do RRD (Remote Request Dispatcher)

Este tópico apresenta algumas considerações do que é necessário para estar atento ao utilizar o RRD (Remote Request Dispatcher).

  • Se um aplicativo esperar parâmetros em determinada codificação, o aplicativo deve configurar a codificação de caractere, como numa inclusão normal, antes que o RRD (Remote Request Dispatch) ocorra.
    • Os dados ServletInputStream do servidor local não está disponível para o servidor remoto. O servidor local analisa os dados POST antes de enviar o pedido RRD ao servidor remoto, e inclui parâmetros como parâmetros de pedido. Os dados do formulário multiparte estão inacessíveis ao servidor remoto. Uma UnsupportedOperationException será criada se o servidor remoto tentar obter o inputstream do pedido.
    • Nenhum acesso à referência de pedido original no servidor remoto.
    • Os wrappers de pedidos e respostas criados no servidor local não estão disponíveis no servidor remoto. Isso não poderá ser realizado em razão de objetos ServletRequestWrappers e ServletRequest internos do WebSphere não implementarem Serializáveis.
  • Os atributos de pedido precisam ser seriáveis.
    • A definição de classe de atributos precisam ser disponíveis tanto em servidores locais quanto em remotos.
    • Os atributos dos pedidos são propagados para o servidor remoto e voltam ao servidor local.
  • Sessões HTTP
    • Você não pode ter acesso de sessão cruzada entre diferentes aplicativos da Web quando os aplicativos da Web forem remotos.
    • Quando todos os aplicativos da Web estiverem em um servidor loca, um aplicativo pode compartilhar sessões entre aplicativos da Web por meio do armazenamento da sessão em uma tabela que está acessível a diversos aplicativos da Web. Isso não é possível com RRD e nem é recomendado no caso local.
    • Modelo de programação de servlet: não é possível acessar sessões em diferentes aplicativos da Web.
    • O modelo de programação normal nos casos local e remoto.
    • Em modo local, o aplicativo pode armazenar em cache a referência e compartilhar a sessão entre os aplicativos da Web, o que não é factível no caso de RRD.
    • Um objeto de sessão armazenado como atributo request não está disponível no servidor remoto assim como classe Session não implementa Serializable.
  • As variáveis locais de encadeamento enviadas no servidor local não estão disponíveis no servidor remoto.
  • Nem todos os métodos no objeto ServletContext estão disponíveis para o objeto ServletContext do RRD. Consulte a documentação do SPI para com.ibm.wsspi.rrd.context.RemoteServletContext para obter detalhes.
  • O servidor remoto não tem acesso a saída do servidor local ao utilizar RRD.
  • Cookies e ServletRequestWrappers

    Se o aplicativo do cliente envolver o método HttpServletRequest.getCookies e retornar cookies adicionais ou remover cookies, os cookies modificados não serão enviados ao servidor remoto porque o javax.servlet.http.Cookie não implementa Serializable. Os cookies dos cabeçalhos de pedido original são enviados ao servidor remoto.


Ícone que indica o tipo de tópico Tópico de Referência



Í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=rweb_rrd_considerations
Nome do arquivo: rweb_rrd_considerations.html