Migrando o Código do Enterprise Bean da Versão 1.1 para a Versão 2.1

Os beans compatíveis com EJB (Enterprise JavaBeans) Versão 2.1 podem ser montados apenas em um módulo compatível com o EJB 2.1, apesar de um módulo compatível com o EJB 2.1 poder conter uma mistura de beans Versão 1.x e Versão 2.1.

Sobre Esta Tarefa

A especificação EJB Versão 2.1 exige que antes do contêiner EJB iniciar uma consulta findByMethod, o estado de todos os enterprise beans listados na transação atual seja sincronizado com o armazenamento persistente. (Essa ação é para que a consulta seja executada nos dados atuais.) Se os beans Versão 1.1 forem montados novamente em um módulo compatível com o EJB 2.1, o contêiner EJB sincronizará o estado dos beans Versão 1.1, assim como dos beans Versão 2.1. Como resultado, você pode notar alguma alteração no comportamento do aplicativo, apesar do código do aplicativo para os beans Versão 1.1 não ter sido alterado.

As informações a seguir aplicam-se geralmente a qualquer enterprise bean atualmente compatível com a Versão 1.1 da especificação EJB. Para obter informações adicionais sobre como migrar o código para beans produzidos com a ferramenta Rational Application Developer, consulte a documentação do produto.

Procedimento

  1. Nos beans com CMP (persistência gerenciada pelo contêiner) versão 1.x, substitua cada campo CMP com métodos get e set abstratos. Ao fazer isso, você deve tornar cada classe de bean abstrata.
  2. Nos beans com CMP versão 1.x, altere todas as ocorrências de this.field = value para setField(value).
  3. Em cada bean CMP, crie métodos get e set abstratos para a chave primária.
  4. Nos beans com CMP versão 1.x, crie uma instrução EJB Query Language para cada método finder.
    Nota: EJB Query Language tem as seguintes limitações no Application Developer Versão 5:
    • As consultas da EJB Query Language que envolvem os beans com chaves formadas por relações com outros beans aparecem como inválidas e causam erros na hora da implementação.
    • O suporte à IBM EJB Query Language estende a especificação EJB 2.1 de várias maneiras, incluindo o relaxamento de algumas restrições, incluindo suporte para mais funções do DB2, etc. Se a portabilidade entre vários bancos de dados de fornecedores ou ferramentas de implementação do EJB for uma preocupação, deve-se tomar cuidado ao gravar todas as consultas EJB Query Language estritamente de acordo com as instruções descritas no Capítulo 11 da especificação EJB 2.1.
  5. Nos métodos finder para beans com CMP versão 1.x, retorne java.util.Collection em vez de java.util.Enumeration.
  6. Atualize o tratamento de exceções que não são de aplicativos.
    • Para relatar exceções que não são de aplicativos, utilize javax.ejb.EJBException em vez de java.rmi.RemoteException.
    • Modifique o comportamento de recuperação conforme necessário: Nas versões 1.1 e 2.1 do EJB, todas as exceções que não são de aplicativos emitidas pela instância do bean resultam na recuperação da transação na qual a instância está em execução; a instância é descartada. No EJB 1.0, o contêiner não recupera a transação nem descarta a instância se ela emitir java.rmi.RemoteException.
  7. Atualize o comportamento de recuperação como resultado das exceções de aplicativos.
    • Nas versões 1.1 e 2.1 do EJB, uma exceção de aplicativo não faz com que o contêiner EJB recupere automaticamente uma transação.
    • No EJB Versão 1.1, o contêiner executa a recuperação somente se a instância tiver chamado setRollbackOnly() em seu objeto EJBContext.
    • No EJB Versão 1.0, o contêiner precisa recuperar uma transação quando uma exceção de aplicativo é transmitida através de uma limitação da transação iniciada pelo contêiner.
  8. Atualize qualquer definição de CMP de valores padrão específicos do aplicativo para estar no ejbCreate (sem utilizar variáveis globais, já que os contêineres EJB 1.1 definem todos os campos como valores genéricos padrão antes de chamar ejbCreate, que sobrescreve quaisquer padrões anteriores específicos do aplicativo). Essa abordagem também funciona para os CMPs do EJB 1.0.

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