Soquetes Persistentes Dedicados

Um soquete persistente dedicado é uma conexão de soquete designada para um ID de cliente específico e que permanece dedicada a esse ID de cliente específico até que ele seja desconectado.

Geralmente, uma conexão de soquete persistente dedicado é usada (ou reutilizada) em série por um único aplicativo. Entretanto, uma conexão do soquete persistente dedicado também pode ser usada de forma serial por diversos aplicativos, que podem obter o soquete usando o mesmo ID do cliente.

Se aplicativos diferentes tentarem usar uma conexão de soquete persistente dedicado ao usar o mesmo ID do cliente simultaneamente, a tentativa do primeiro aplicativo será bem-sucedida. Tentativas subsequentes por outros aplicativos, quando o primeiro aplicativo ainda estiver usando sua conexão, receberão erros de cliente duplicado (DUPCLNT) do IMS Connect.

Um erro de cliente duplicado também pode ocorrer quando um aplicativo, que obtém uma conexão de soquete persistente dedicado ao usar um determinado ID de cliente, for executado em um ambiente no qual as conexões do soquete persistente dedicado se originam de diversas instâncias do WebSphere Application Server. Por exemplo, um ambiente que contém várias instâncias do WebSphere Application Server controladas por um gerenciador de carga de trabalho pode encontrar erros de cliente duplicado.
Recomendação: Não implemente o aplicativo nesse tipo de ambiente se ele usar uma conexão do soquete persistente dedicado.
As conexões do soquete persistente dedicado destinam-se a ser usadas em um ambiente no qual uma instância única do WebSphere Application Server é conectada a um único IMS Connect. Em algumas situações, uma instância única do WebSphere Application Server pode ser conectada a várias instâncias do IMS Connect. Nessa configuração, se o Sysplex Distributor for usado entre o WebSphere Application Server e o IMS Connect, as seguintes interações não serão suportadas:

Modo de Confirmação e Interações Suportados

Um soquete persistente dedicado pode ser usado apenas para aplicativos Java™ que executam interações de modo de confirmação 0.

Tabela 1. Modos de Confirmação, Verbos de Interação e Níveis de Sincronização por Tipo de Soquete Suportado
Modo de Confirmação Tipo de soquete Verbo de interação ID do cliente Nível de sincronização
CM1 Persistente compartilhável
  • SYNC_END_CONVERSATION (para transações de conversação)
  • SYNC_SEND_RECEIVE
Gerado e gerenciado automaticamente Nenhum ou Confirmar
CM0 Persistente compartilhável
  • SYNC_SEND
  • SYNC_SEND_RECEIVE
  • SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT
  • SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
  • SYNC_RECEIVE_CALLOUT (para modelo de programação de callout não gerenciado)
Gerado e gerenciado automaticamente Confirmar
Persistente dedicado
  • SYNC_SEND
  • SYNC_SEND_RECEIVE
  • SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT
  • SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
Especificado por aplicativos clientes (a propriedade clientID) Confirmar

O verbo de interação SYNC_RECEIVE_ASYNCOUTPUT foi descontinuado e substituído pelo verbo de interação SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT.

Recuperação de Mensagem

As interações SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT e SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT (juntamente com a interação SYNC_RECEIVE_ASYNCOUTPUT descontinuada) em soquetes dedicados persistentes permitem que os aplicativos clientes recuperem mensagens das seguintes origens:
  • Mensagens que foram colocadas em uma fila de saída assíncrona do IMS OTMA como resultado de uma interação de modo de confirmação 0 com falha
  • Mensagens provenientes de um aplicativo do IMS que emitiu uma inserção para um PCB alternativo (ALTPCB)
  • Mensagens do novo roteamento da saída de uma transação executada em uma conexão de soquete compartilhável
Para recuperar essas mensagens, o aplicativo cliente deve fornecer o ID do cliente, o qual representa o tpipe no qual as mensagens de saída assíncronas estão enfileiradas. As mensagens de saída não entregues das interações em soquetes persistentes dedicados não podem ser roteadas novamente ou limpas.

Talvez você não consiga recuperar todas as mensagens de saída disponíveis com as interações SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT ao usar diversos sistemas IMS sem o Supermembro do OTMA.

Conexões de Soquetes Persistentes Dedicados

As conexões de soquetes persistentes dedicados são criadas por um connection factory do IMS com valores para pelo menos as seguintes propriedades customizadas:
  • Nome de host: nome do host TCP/IP do sistema que está executando o IMS Connect
  • Número da porta: número da porta associada
  • Nome do armazenamento de dados: nome do IMS de destino
  • CM0 dedicado: true

Um valor de true para a propriedade CM0Dedicated assegura que o connection factory crie conexões do soquete dedicado persistente.

Se mais de um connection factory for configurado para criar soquetes persistentes dedicados para a mesma instância do IMS Connect, apenas um connection factory poderá dedicar um soquete para um ID de cliente específico por vez. Por exemplo, suponha que um connection factory crie com êxito uma conexão do soquete que seja dedicada a um ID do cliente, CLIENT01. Um segundo connection factory também tenta criar uma conexão do soquete que seja dedicada ao CLIENT01. Se a conexão do soquete criada pelo primeiro connection factory ainda estiver conectada ao IMS Connect, a segunda conexão receberá a seguinte exceção:
javax.resource.spi.EISSystemException: ICO0001E: erro
com.ibm.connector2.ims.ico.IMSTCPIPManagedConnection@23766050.processOutputOTMAMsg
(byte [], InteractionSpec,Record) error. O IMS Connect retornou um erro: RETCODE=[8], 
REASONCODE=[DUPECLNT]. 
O ID do cliente duplicado foi usado; o ID do cliente está sendo usado atualmente. 

Feedback