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:
- Recuperação two-phase commit
- Transações de conversação do IMS
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.