Suporte a Outras Transações

O IMS TM Resource Adapter também suporta transações locais, processamento one-phase commit, processamento de transação não global e processamento de transação de conversação em um escopo de transação global.

Transação Local

A J2EE Connection Architecture define a interface javax.resource.cci.LocalTransaction para um gerenciador de recursos, em vez de um gerenciador de transações, para coordenar uma transação localmente. Entretanto, o IMS TM Resource Adapter suporta somente a coordenação de transação com um gerenciador de transações. Assim, o IMS TM Resource Adapter não suporta a interface javax.resource.cci.LocalTransaction. Se você chamar o método IMSConnection.getLocalTransaction(), receberá uma NotSupportedException. Para usar o suporte a transações com o IMS TM Resource Adapter, é necessário usar a interface de transação JTA ou definir um atributo de transação adequado no descritor de implementação de seu aplicativo. Consulte o tópico sobre suporte a transações globais nos aplicativos clientes para obter mais informações.

Processamento One-phase Commit

O IMS TM Resource Adapter suporta a otimização de one-phase commit com um gerenciador de transações. Como resultado, se todas as alterações dentro de um escopo de transação pertencerem ao mesmo recurso do IMS, o gerenciador de transações poderá executar a otimização one-phase-commit, para que o gerenciador de transações envie o pedido two-phase commit diretamente para o gerenciador de recursos para confirmar as alterações sem enviar o pedido de preparação da primeira fase.

Processamento de Transação Não global

Se o processamento de transação não global for usado no aplicativo (por exemplo, quando o atributo de transação estiver configurado como TX_NOTSUPPORTED), todos os processamentos de transações não globais usarão "Sync-On-Return" (OTMA SyncLevel=None). No momento que a transação do IMS é confirmada, a saída é retornada ao cliente.

Processamento de Transação de Conversação no Escopo de Transação Global

O IMS usa um programa de conversação para dividir o processamento em uma série conectada de interações de cliente para programa para cliente (também chamadas de iterações). Cada iteração é um tipo de transação de conversação do IMS. O processamento de conversação é usado quando uma transação contém várias partes. Cada parte que engloba uma transação grande é confirmada ou desfeita separadamente.

Você pode executar uma transação de conversação no escopo de transação global se:
  • Cada iteração for executada no mesmo nível de transação. Por exemplo, se a primeira iteração for processada com um escopo de transação global, então todas as iterações subsequentes nessa transação de conversação do IMS deverá ser processada no nível de transação global. Se você emitir a segunda iteração sem um escopo de transação, o IMS OTMA informará um erro.
  • Cada iteração deve ser concluída com uma confirmação ou retrocesso de chamada antes da emissão da próxima iteração na conversação do IMS. Você não pode agrupar várias iterações em um único escopo de transação global.

Feedback