A classe InteractionSpec é uma classe específica do CICS usada para gerenciar
a interação entre o aplicativo de cliente Java™ e o
CICS.
Seu aplicativo J2C usa a interação de Interação para se vincular a um programa do
servidor. O adaptador de recursos ECI fornece uma implementação da interface de
Interação, mas seu aplicativo não usa a interface diretamente; em vez disso, ele usa a
classe ECIInteractionSpec para definir as propriedades da interação:
Assim como com ECIConnectionSpec, você pode configurar propriedades na classe ECIInteractionSpec em tempo de construção ou utilizando configuradores. Ao contrário da ECIConnectionSpec, a classe ECIInteractionSpec foi projetada como um
Java bean. Portanto, em um ambiente gerenciado, seu
servidor pode fornecer ferramentas para permitir que você defina essas propriedades
usando uma GUI sem gravar qualquer código.
Propriedades de ECIInteractionSpec
- TPNName: TPNName refere-se ao nome da Transação de TPN do
CICS sob a qual você quer que todos os programas
iniciados pelo adaptador de recursos sejam executados. TPNName terá precedência se TranName e TPNName forem especificados. Se TPNName estiver definido em ECIInteractionSpec, isto substituirá quaisquer valores definidos no momento da implementação (ou na managedConnectionFactory, se não for gerenciada).
- commareaLength: commareaLength refere-se ao comprimento do elemento de dados,
- executeTimeout: Para especificar um valor para o tempo
limite de ECI, configure a propriedade ExecuteTimeout da classe ECIInteractionSpec para o
valor de tempo limite de ECI. Os valores possíveis são:
- 0 (sem tempo limite) Este é o valor padrão.
- Um número inteiro positivo (tempo em milissegundos.)
Nota: Se você estiver usando um CICS Transaction
Gateway no z/OS, não será possível especificar um
valor para o tempo limite de ECI. Como uma alternativa, é possível configurar o parâmetro
TIMEOUT na tabela de opções EXCI DFHXCOPT
- functionName: Configura a propriedade FunctionName para o
nome do programa do servidor CICS.
- interactionVerb: O interactionVerb configura o tipo de interação executado
por sua transação. Os valores possíveis são:
- SYNC_SEND para uma chamada assíncrona.
- SYNC_RECEIVE para recuperar uma resposta de uma chamada assíncrona.
- SYNC_SEND_RECEIVE para uma chamada síncrona.
- Quando uma chamada SYNC_SEND é emitida com o método execute() de um determinado
objeto ECIInteraction, essa instância da ECIInteraction não pode executar outro SYNC_SEND
ou SYNC_SEND_RECEIVE até um SYNC_RECEIVE ter sido executado.
- Chamadas assíncronas simultâneas para a mesma conexão são permitidas, contanto que
não resultem em duas chamadas assíncronas pendentes dentro do mesmo escopo de transação. Se isso acontecer, uma LocalTransactionException é lançada.
- Se você estiver usando o adaptador no modo local com
WebSphere Application Server for
z/OS, e requerer suporte transacional, especifique
o tipo de interação SYNC_SEND_RECEIVE. Se você usar SYNC_SEND e SYNC_RECEIVE para emitir
solicitações assíncronas, as solicitações de ECI serão emitidas com sincronização no
retorno e ficarão fora do escopo da atual transação global. No modo remoto, chamadas
assíncronas funcionam normalmente.
- Configure a propriedade CommareaLength para o comprimento da COMMAREA sendo passada
para o CICS. Se nenhum valor for fornecido, um
padrão será usado:
- SYNC_SEND, SYNC_SEND_RECEIVE -- Comprimento dos dados do registro de entrada
- SYNC_RECEIVE -- O valor de ReplyLength
- Configure a propriedade ReplyLength como o comprimento do fluxo de dados a ser retornado do daemon de Gateway para o aplicativo J2C. Isso pode reduzir os dados transmitidos pela rede se os dados retornados pelo
CICS forem menores que o tamanho total da COMMAREA
e você souber o tamanho dos dados com antecedência. O aplicativo JCA ainda receberá uma
COMMAREA completa do tamanho especificado em CommareaLength, e apenas a quantidade de
dados enviados pela rede será reduzida.
Esse método é equivalente ao setCommareaInboundLength() disponível para a classe
ECIRequest. Se você não configurar ReplyLength, o
CICS Transaction Gateway removerá automaticamente
os zeros finais da COMMAREA enviada do Daemon de gateway para o aplicativo J2C, sem
precisar saber o tamanho dos dados com antecedência.
- replyLength: A propriedade ReplyLength configura o comprimento do fluxo de
dados a ser retornado do daemon de Gateway para o aplicativo J2C. É possível reduzir os
dados transmitidos por meio da rede se os dados retornados pelo
CICS forem menores que o tamanho total do COMMAREA
e você souber o tamanho dos dados com antecedência.
- tranName: O nome da Transação do CICS
sob a qual você quer que todos os programas iniciados pelo adaptador de recursos sejam
executados. O programa chamado é executado sob uma transação espelhada, mas está vinculado sob o nome da transação tranName. Este nome está disponível para o programa chamado para consultar o ID de transação. Alguns servidores utilizam o ID de transação para determinar os atributos de segurança e de desempenho para o programa chamado. Nesses servidores, é recomendável utilizar este parâmetro para controlar o processamento de seus programas chamados. A configuração de tranName em ECIInteractionSpec substitui o valor, conforme configurado
na implementação (ou em ManagedConnectionFactory, se nonmanaged).