Interoperabilidade do contêiner
A interoperabilidade do contêiner descreve a capacidade dos clientes e servidores do produto em diferentes versões para negociar com sucesso as diferenças no suporte de métodos localizadores Enterprise JavaBeans (EJB) nativos e na conformidade de Java EE.
Interoperabilidade dos Formatos do Identificador no WebSphere Application Server, Versão 5 e Versão 5.0.1
Os aplicativos que tentam persistir identificadores para enterprise beans e EJBHome precisam especificar em subclasse o ObjectInputStream no WebSphere Application Server, Versão 5. Essa ação era necessária para que a subclasse ObjectInputStream pudesse utilizar o carregador de classe de contexto para resolver as classes dos enterprise beans e stubs EJBHome.
Além disso, os identificadores criados e persistidos no WebSphere Application Server, Versão 5 trabalham apenas com objetos que possuem uma interface remota inalterada. Se a interface remota for alterada, o identificador não será mais válido porque o stub é serializado no identificador e seu UID serial de Versão é alterado se a interface remota for alterada.
Este release apresenta um novo mecanismo de persistência de identificadores que evita as desvantagens de implementação da versão anterior. Entretanto, se identificadores forem usados para essa implementação do WebSphere Application Server, você deverá considerar os seguintes problemas quando aplicar essa atualização, correções futuras acumulativas dos Fix Packs e Contêiner EJB do WebSphere Application Server para o WebSphere Application Server, Versão 5.
Se um identificador persistido do WebSphere Application Server, Versão 5 ou um identificador home for encontrado por um sistemaWebSphere Application Server, Versão 5.0.1, ele poderá ser lido ou usado. Além disso, ele será convertido no formato do WebSphere Application Server, Versão 5.0.1 se ele for repersistido. O formato do WebSphere Application Server, Versão 5.0.1 não pode ser lido por um sistema WebSphere Application Server, Versão 5 a menos que PQ72184 seja aplicado.
Problemas surgem quando identificadores são persistidos e compartilhados entre sistemas que não estejam no nível do WebSphere Application Server, Versão 5.0.1 ou superior. No entanto, um sistema da Versão 5 pode receber um identificador da Versão 5.0.1 remotamente por meio de uma chamada para obter um identificador em um enterprise bean ou um getHomeHandle em um EJBHome. A chamada remota será bem-sucedida, no entanto, qualquer tentativa de persistí-la no sistema da Versão 5 terá as mesmas limitações relativas à utilização do ObjectInputStream e alterações na interface remota que invalidam o identificador persistido.
Quando seu aplicativo armazena manipulações de maneira persistente e compartilha essa persistência com vários clientes ou servidores de aplicativos, aplique o WebSphere Application Server, Versão 5.0.1 ou PQ72184 nos sistemas cliente e do servidor ao mesmo tempo. Caso isso não seja feito, esses sistemas poderão ser incapazes de ler os dados do identificador armazenados pelos sistemas com upgrade. Além disso, os identificadores armazenados pelo WebSphere Application Server, Versão 5 podem forçar os aplicativos do sistema atualizado a ainda definir em subclasse o ObjectInputStream. Os aplicativos que usam o planejador do WebSphere Application Server Enterprise, Versão 5 e o process choreographer são afetados por essas mudanças. Esses usuários devem atualizar seus sistemas da Versão 5 ao mesmo tempo com a Versão 5.0.1 ou o PQ72184.
Se os aplicativos armazenarem os identificadores no contexto da sessão, ou localmente em um arquivo no mesmo sistema, que não seja compartilhado por outros aplicativos, em sistemas diferentes, eles poderão atualizar seus sistemas individualmente, em vez de todos de uma vez. Se os aplicativos Client Container e Thin Client não compartilharem os dados persistidos do identificador, eles também poderão ser atualizados, conforme necessário. Entretanto, os identificadores criados e persistidos no WebSphere Application Server, Versão 5, Versão 4.0.3 e superior (com o sinalizador de propriedade configurado) ou na Versão 3.5.7 e superior (com o sinalizador de propriedade configurado) não são usáveis se uma das interfaces home ou remotas for alterada.
Se algum WebSphere Application Server, Versão 3.5.7 ou Versão 4.0.3 e superior ativar a propriedade do sistema com.ibm.websphere.container.portable para true, quaisquer identificadores dos objetos nesse servidor terão as mesmas limitações de interoperabilidade. Além disso, se qualquer aplicativo do WebSphere Application Server, Versão 3.5.7 e posterior ou Versão 4.0.3 armazenar um manipulador obtido de um WebSphere Application Server, Versão 5 ou Versão 5.0.1, as mesmas restrições se aplicam, independente da necessidade de subclasse ObjectInputStream e da usabilidade de manipuladores seguindo uma mudança da interface remota serem feitas.
Replicação da Sessão Http e Manipulações
Esta nota se aplica a você se colocar Manuseios em Homes ou Enterprise JavaBeans ou referências a EJB ou EJBHome na Sessão HTTP no aplicativo e utilizar a Replicação de Sessão HTTP. Se pretende replicar um ambiente misto das máquinas das Versões 5.0.0 e 5.0.1 ou 5.0.2, você deverá aplicar o e-fix cumulativo do contêiner da Versão 5.0.0 mais recente às máquinas da Versão 5.0.0 antes de permitir o servidor da Versão 5.0.1 ou 5.0.2 na topologia. O motivo é que os servidores da Versão 5.0.0 não compreendem o formato de Identificador persistente utilizado nos servidores da Versão 5.0.1 e 5.0.2. Isto é semelhante ao caso dos sistemas Versão 5.0.0 e Versão 5.0.1 ou 5.0.2 tentando usar um banco de dados compartilhado, mencionado anteriormente. Mas nesse caso, é o objeto da Sessão HTTP e não o banco de dados que fornece a persistência.
Mapeamento da Implementação Descendente
O tamanho dos objetos do Identificador aumentou devido à correção aplicada para permitir a serialização e o cancelamento da serialização sem os requisitos anteriores de subclasse do ObjectInputStream e assim por diante. A implementação de um objeto de cima para baixo que contém referências EJB e EJBHome cria um dll de tabela do banco de dados com um campo de 1000 bytes de VARCHAR para BITDATA que conterá o Identificador. Pode ocorrer que o Identificador do objeto não caiba no campo padrão de 1000 bytes e pode ser necessário ajustá-lo para um valor maior. Você pode tentar incrementos de 250 bytes, isto é, 1250, 1500, etc.