Configurando Atributos de Implementação Transacional

É possível configurar os atributos do descritor de implementação transacional associados com um módulo EJB ou da Web, para possibilitar que um aplicativo corporativo use transações.

Antes de Iniciar

Você deve ter um arquivo EAR (enterprise archive) de um componente do aplicativo que possa ser implementado no servidor de aplicativos.

Sobre Esta Tarefa

É possível configurar os atributos de implementação de um aplicativo utilizando uma ferramenta de montagem.

É possível usar o Rational Application Developer ou uma ferramenta equivalente, para configurar os atributos de implementação de um aplicativo.

Para usar o Rational Application Developer para configurar atributos transacionais no descritor de implementação para um componente de aplicativo (enterprise bean ou servlet), conclua as seguintes etapas.

Procedimento

  1. Inicie a ferramenta de montagem. Para saber mais, consulte as informações do Rational Application Developer.
  2. Crie ou edite o arquivo EAR do aplicativo. Por exemplo, para alterar os atributos de um aplicativo existente, utilize o assistente de Importação para importar o arquivo EAR para a ferramenta de montagem. Para iniciar o assistente para importação:
    1. Clique em Arquivo > Importar > Arquivo EAR.
    2. Clique em Avançar, em seguida, selecione o arquivo EAR.
    3. Clique em Finish.
  3. Na visualização do Project Explorer da perspectiva Java EE, clique com o botão direito do mouse na instância do componente e, em seguida, clique em Abrir com > Deployment Descriptor Editor. Para localizar a instância do componente, use a etapa adequada:
    • Para um bean de sessão, expanda Módulos EJB > ejb_module_instance > Descritor de Implementação > Beans de Sessão, depois selecione a instância do bean.
    • Para um servlet, expanda Módulos da Web > web_application > Descritor de Implementação > componente da Web, em seguida, selecione a instância do servlet.
    Um bloco de notas do diálogo de propriedades para o descritor de implementação do componente é exibido na área de janela de propriedades.
  4. Opcional: Somente para beans de sessão, configure o atributo "Tipo de Transação", que define a maneira transacional na qual o contêiner chama um método. É possível definir esse atributo para Contêiner ou Bean, da seguinte forma:
    • Para utilizar transações gerenciadas por contêiner, configure o atributo para Contêiner.
    • Para utilizar transações gerenciadas por bean, configure o atributo para Bean.
  5. No bloco de notas do descritor de implementação, selecione a guia Bean. Opcionalmente, na seção de extensões do WebSphere, configure os atributos de Transação Local. Para permitir o gerenciamento de contenções de transações locais, configure os seguintes atributos de extensões de componentes. Estes atributos configuram, para o componente, o comportamento do ambiente local transaction containment (LTC) que o contêiner estabelece sempre que uma transação global não está presente.
    Limite
    Essa configuração especifica o limite de contenção no qual todas as RMLTs (Resource Manager Local Transactions) contidas devem ser concluídas. Valores possíveis são BeanMethod ou ActivitySession.
    • BeanMethod: Este é o valor padrão. Se você selecionar essa opção, as RMLTs devem ser resolvidas dentro do mesmo método do bean no qual elas foram iniciadas.
    • [Apenas para componentes EJB] ActivitySession: As RMLTs devem ser resolvidas dentro do escopo de qualquer ActivitySession em que foram iniciadas ou, se nenhum contexto ActivitySession estiver presente, no mesmo método do bean em que foram iniciadas.
      Nota: A opção ActivitySession não é suportada no contêiner da Web.
    Resolver
    Essa configuração especifica o componente responsável por iniciar e finalizar RMLTs. Valores possíveis são Application ou ContainerAtBoundary.
    • Application: Este é o valor padrão. O aplicativo é responsável por iniciar RMLTs e concluí-las dentro do limite de LTC (contenção da transação local). Qualquer RMLT que não esteja concluída no final do limite de LTC será limpa pelo contêiner, de acordo com o valor do atributo Ação Não Resolvida.
    • ContainerAtBoundary: O contêiner é responsável por iniciar RMLTs e concluí-las dentro do limite de LTC. O contêiner inicia uma RMLT quando uma conexão é utilizada primeiramente dentro do escopo de LTC e a conclui automaticamente no final do escopo de LTC. Se o atributo Limite estiver configurado como ActivitySession, as RMLTs serão inscritas como recursos ActivitySession e direcionadas para serem concluídas pela ActivitySession. Se o atributo Limite estiver configurado como BeanMethod, as RMLTs serão confirmadas no final do método por contêiner.
    Ação Não Resolvida
    Especifica a direção que o contêiner solicita que as RMLTs tomem, se essas transações não estiverem resolvidas no final do escopo do limite de LTC e o Resolvedor estiver configurado como Aplicativo. Valores possíveis são Rollback ou Commit.
    • Rollback: Este é o valor padrão. No final do escopo do limite de LTC, o contêiner instrui todas as RMLTs não resolvidas para serem recuperadas.
    • Commit: No final do escopo do limite de LTC, o contêiner instrui todas as RMLTs não resolvidas para serem confirmadas. O contêiner instruirá as RMLTs a confirmar apenas na ausência de uma exceção não manipulada. Se o método de aplicativo que está sendo executado no contexto de transação local terminar com uma exceção, qualquer RMLT não resolvida será recuperada pelo contêiner. Esse é o mesmo comportamento das transações globais.
    Compartilhável
    Especifica se o componente pode compartilhar um LTC. Um novo LTC será iniciado apenas se um LTC compartilhável ainda não existir. Os aplicativos que utilizam LTCs compartilháveis não podem confirmar ou recuperar explicitamente conexões do gerenciador de recursos que sejam utilizadas em um LTC compartilhável (embora possam utilizar conexões que tenham um recurso autoCommit).

    Se um aplicativo iniciar qualquer trabalho sem autocommit em um LTC para o qual o atributo Resolvedor está configurado como Aplicativo e o atributo Compartilhável está configurado como true, será lançada uma exceção no tempo de execução. Por exemplo, em uma Conexão JDBC, trabalho non-autocommit é o trabalho que o aplicativo executa depois de utilizar o método setAutoCommit(false) para desativar a opção autocommit na conexão. Os enterprise beans que utilizam BMT (Bean Managed Transactions) não podem ser montados com o atributo Shareable definido na configuração LTC.

    É necessário especificar o atributo Compartilhável para todos os componentes que compartilham o LTC. O componente que cria o LTC compartilhável determina as outras propriedades do LTC compartilhado, por exemplo, o valor do atributo Resolvedor.

  6. Na seção de extensões do WebSphere, configure os atributos de Transação Global. Esses atributos configuram, para o componente, o comportamento na presença de uma transação global.
    Tempo Limite da Transação do Componente
    Para enterprise beans que utilizam transações gerenciadas pelo contêiner apenas, especifica o tempo limite da transação, em segundos, para qualquer transação global nova que o contêiner inicie em nome do enterprise bean. Nas transações iniciadas em nome do componente, a configuração do tempo limite da transação do componente substitui o tempo limite de vida útil total da transação configurada nas definições de serviço de transação do servidor de aplicativos.

    Os seguintes atributos ativam o suporte do WS-AtomicTransaction e WS-BusinessActivity apenas para aplicativos JAX-RPC:

    Utilizar Web Services Atomic Transaction
    Somente para enterprise beans, quando esse atributo está selecionado, se o componente do aplicativo fizer quaisquer pedidos de serviço da Web, qualquer contexto de transação é propagado com os pedidos de serviço da Web de acordo com o suporte do WebSphere WS-AtomicTransaction descrito emSuporte ao Web Services Atomic Transaction no Servidor de Aplicativos. Quando esse atributo não está selecionado, os pedidos de serviço da Web não transportam contexto de transação.
    Enviar Web Services Atomic Transaction em Pedidos
    Somente para componentes da Web, quando esse atributo está selecionado, se o componente do aplicativo fizer quaisquer pedidos de serviço da Web, qualquer contexto de transação é propagado com os pedidos de serviço da Web de acordo com o suporte do WebSphere WS-AtomicTransaction descrito em Suporte ao Web Services Atomic Transaction no Servidor de Aplicativos. Quando esse atributo não está selecionado, os pedidos de serviço da Web não transportam contexto de transação.
    Executar Utilizando Web Services Atomic Transaction em Pedidos que Chegam
    Somente para componentes da Web, quando esse atributo está selecionado, os componentes do aplicativo da Web são preparados para executar sob um contexto WS-AtomicTransaction recebido. Um componente do aplicativo da Web pode executar sob um contexto WS-AtomicTransaction recebido de uma maneira similar a um enterprise bean implementado com um tipo de transação de contêiner de Suportes. Quando esse atributo não está selecionado, o contêiner do componente do aplicativo da Web suspende quaisquer contextos de transação recebidos, de modo similar ao comportamento de um contêiner EJB para um enterprise bean implementado com um tipo de transação de contêiner de NãoSuportado.

    Se o seu aplicativo usar JAX-WS, ative o suporte para WS-AtomicTransaction ou WS-BusinessActivity criando um conjunto de política, incluindo o tipo de política WS-Transaction no conjunto de política e anexando o conjunto de política ao serviço ou cliente.

    Se um conjunto de política conectado a um cliente incluir o tipo de política WS-Transaction, qualquer contexto de transação global ativo será propagado com um pedido de serviço da Web, isso é semelhante aos descritores de implementação Utilizar Transação Atômica de Serviços da Web e Enviar Transação Atômica de Serviços da Web nos pedidos, descritos acima neste tópico. Além disso, quando o tipo de política do WS-Transaction é incluído, o serviço é executa em qualquer contexto de WS-AtomicTransaction recebido, de forma semelhante ao descritor de implementação Executar Usando Transação Atômica de Serviços da Web em pedidos recebidos, descrito anteriormente neste tópico.

  7. Somente para componentes EJB, para as transações gerenciadas por contêiner, configure como o contêiner deve gerenciar os limites da transação ao delegar uma chamada de método ao método de negócios de um enterprise bean:
    1. No bloco de notas do descritor de implementação, selecione a guia Montagem. A seção Transações do Contêiner exibe uma tabela dos métodos do enterprise bean.
    2. Para cada método do enterprise bean, configure o tipo de transação do contêiner para um valor apropriado. O valor padrão para o tipo de transação do contêiner é Required, o que significa que a chamada do método ocorre no contexto de uma transação. Esta transação é a transação do componente do cliente (local ou remoto) ou, se o componente do cliente não for executado em uma transação, uma nova transação iniciada pelo contêiner do componente.

    Se o aplicativo usar ActivitySessions, a maneira como o contêiner gerencia os limites das transações ao delegar uma chamada de método depende do tipo de transação do contêiner que você configura nesta tarefa e o atributo do tipo ActivitySession, descrito em Definindo Atributos de Implementação de ActivitySession do Módulo EJB. Para obter detalhes adicionais sobre o relacionamento entre essas duas propriedades, consulte ActivitySession e Políticas de Contêiner de Transação em Combinação.

  8. Para aplicativos de serviços da Web que usam uma ligação SOAP/JMS e participam em WS-AtomicTransactions, configure o tipo de transação de contêiner do bean acionado por mensagem nomeado "JMS router MDB" para um valor de NãoSuportado, conforme descrito na etapa anterior. Os aplicativos de serviço da Web que utilizam a ligação SOAP/JMS incluem um bean acionado por mensagem de roteador denominado "JMS router MDB" no EAR montado. Se um serviço da Web utilizar uma ligação SOAP/JMS e participar de WS-AtomicTransactions, como descrito em Suporte ao Web Services Atomic Transaction no Servidor de Aplicativos, configure o tipo de transação do contêiner denominado "MDB do roteador JMS" para o valor NotSupported.

    Para aplicativos de serviços da Web que usam uma ligação SOAP/HTTP e participam em WS-AtomicTransactions, não é necessário fazer isso.

  9. Para componentes de aplicativos do cliente apenas, se necessário, ative o suporte para demarcação de transação por cliente. No bloco de notas do descritor de implementação, selecione a caixa de opção Permitir Demarcação de JTA. Esta opção direciona o contêiner do cliente para ligar a interface UserTransaction da JTA (Java™ Transaction API) à JNDI em java:comp/UserTransaction para o componente do cliente. Há limites no suporte de transação no contêiner do cliente, descritos em Suporte a Clientes para Transações.
  10. Salve suas alterações para o descritor de implementação.
    1. Feche o Deployment Descriptor Editor.
    2. Ao receber o aviso para tal, clique em Sim para salvar as alterações para o descritor de implementação.
  11. Verifique os arquivos archive. Para obter informações adicionais sobre como verificar arquivos utilizando o Rational Application Developer, consulte as informações do Rational Application Developer.
  12. A partir do menu do projeto, clique em Implementar para gerar o código de implementação de EJB.
  13. Opcional: Teste seu módulo completo em uma instalação do servidor de aplicativos. Clique com o botão direito em um módulo, clique em Executar no Servidor e siga as instruções no assistente exibido.
    Importante: Use a opção Executar no Servidor apenas para teste de unidade. A ferramenta de montagem controla a instalação do servidor de aplicativos e, quando um aplicativo é publicado remotamente, a ferramenta de montagem sobrescreve o arquivo de configuração do servidor referente a esse servidor. Não utilize a opção Executar no Servidor em servidores de produção.

O que Fazer Depois

Após a montagem de seu aplicativo, utilize uma ferramenta de gerenciamento de sistemas, por exemplo o console administrativo, para implementar o arquivo EAR no servidor de aplicativos que deve executar o 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=tjta_entra2
Nome do arquivo: tjta_entra2.html