Como os Aplicativos JMS Conectam a um Mecanismo do Sistema de Mensagens em um Barramento
Há vários fatores que afetam como os aplicativos JMS serão conectados a um barramento de integração de serviços, para que possam usar recursos fornecidos pelo barramento.
Para conectar-se a um barramento de integração de serviços, um aplicativo é conectado na realidade a um mecanismo do sistema de mensagens no barramento.
Por padrão, o ambiente conecta automaticamente aplicativos a um mecanismo do sistema de mensagens disponível no barramento. No entanto, é possível especificar detalhes adicionais na configuração para influenciar o processo de conexão; por exemplo, para identificar servidores de autoinicialização especiais ou para limitar a conexão a um subgrupo de mecanismos do sistema de mensagens disponível, ou para aprimorar a disponibilidade ou o desempenho, ou para garantir processamento sequencial de mensagens recebidas.
Aplicativos em Execução em um Servidor de Aplicativos: Configuração Padrão
Aplicativos que estão sendo executados em um servidor de aplicativos são direcionados pelo ambiente do WebSphere Application Server para um mecanismo de sistema de mensagens disponível.
Se o mecanismo de sistema de mensagens for localizado no mesmo servidor, será criada uma conexão que fornecerá ao aplicativo a conexão disponível mais rápida a um mecanismo de sistema de mensagens. Caso contrário, se um mecanismo de sistema de mensagens for encontrado em outro processo, no mesmo host ou em um diferente, será estabelecida uma conexão remota. Se nenhum mecanismo do sistema de mensagens adequado for encontrado, o aplicativo não conseguirá conectar-se ao barramento.

A figura mostra dois aplicativos em execução nos servidores de aplicativos. O aplicativo X no servidor 3 foi conectado ao mecanismo do sistema de mensagens em execução no mesmo servidor. O aplicativo Y no servidor1 foi conectado a um mecanismo do sistema de mensagens em execução no mesmo barramento, porém em um servidor e host diferentes, pois o servidor1 não tem um mecanismo do sistema de mensagens adequado.
Aplicativos em Execução Fora de um Servidor de Aplicativos
Os aplicativos clientes em execução fora de um servidor de aplicativos (por exemplo, em execução em um contêiner do cliente ou fora do ambiente do WebSphere Application Server) não podem sozinhos localizar um mecanismo do sistema de mensagens adequado e devem concluir um processo de autoinicialização por meio de um servidor de autoinicialização. Um servidor de autoinicialização que está executando o serviço SIBService, mas que, necessariamente, não está executando nenhum mecanismo do sistema de mensagens. O servidor de autoinicialização seleciona um mecanismo do sistema de mensagens em execução em um servidor de aplicativos que suporte a cadeia de transporte de destino necessária.

Esta figura mostra um aplicativo cliente sendo executado fora de um servidor de aplicativos. Para conectar-se a um mecanismo do sistema de mensagens, o aplicativo conecta-se antes a um servidor de auto-inicialização. O servidor de autoinicialização seleciona um mecanismo de sistema de mensagens e informa ao aplicativo cliente que se conecte ao mecanismo.
Um servidor de autoinicialização utiliza uma porta específica e uma cadeia de transporte de autoinicialização, com a qual o nome do host forma o endereço de nó de extremidade do servidor de autoinicialização.
![[IBM i]](../images/iseries.gif)
Quando você cria um servidor de aplicativos, ele é designado automaticamente a uma porta de autoinicialização não protegida exclusiva, SIB_ENDPOINT_ADDRESS, e a outra porta SIB_ENDPOINT_SECURE_ADDRESS. Se desejar usar um servidor de aplicativos como um servidor de autoinicialização e o servidor tiver sido designado a uma porta não segura, diferente da 7276, ou se desejar usar a porta segura, então será necessário especificar o endereço terminal do servidor na propriedade Terminais do Provedor do connection factory.
Os endereços de nó de extremidade para servidores de autoinicialização devem ser especificados em cada Connection Factory utilizado por aplicativos fora de um servidor de aplicativos. Para não ter de especificar uma longa lista de servidores de autoinicialização, será possível fornecer alguns servidores altamente disponíveis como servidores de autoinicialização dedicados. Será necessário, então, especificar apenas uma lista curta de servidores de autoinicialização em cada connection factory.
Processo de seleção do mecanismo do sistema de mensagens
- Para aplicativos cliente JMS, estas informações estão configuradas no connection factory.
- Para aplicativos de bean acionado por mensagens (MDB), estas informações estão configuradas na especificação de ativação.
- Para outros tipos de aplicativos, estas informações são configuradas programaticamente pelo aplicativo.
- Se um mecanismo do sistema de mensagens estiver sendo executado no barramento necessário no mesmo servidor de aplicativos, uma conexão será feita do aplicativo com o mecanismo do sistema de mensagens. Se não houver mecanismo de sistema de mensagens adequado, a próxima regra será verificada.
- Se um mecanismo do sistema de mensagens estiver sendo executado no mesmo host que o aplicativo, o aplicativo fará uma conexão remota com o mecanismo do sistema de mensagens selecionado. Se não houver mecanismo de sistema de mensagens adequado, a próxima regra será verificada.
- Se um mecanismo do sistema de mensagens estiver sendo executado em qualquer lugar no barramento, o o aplicativo fará uma conexão remota com o mecanismo do sistema de mensagens selecionado. Se não houver mecanismo de sistema de mensagens adequado, a tentativa de conexão não será bem-sucedida.
Em ambos os casos (isto é, um aplicativo em execução em um servidor de aplicativos e um aplicativo sendo executado fora de um servidor de aplicativos), você pode restringir o intervalo de mecanismos do sistema de mensagens disponíveis para conexão a um subgrupo daqueles disponíveis no barramento de integração de serviços. Para isso, configure as seguintes propriedades de conexão do connection factory ou da especificação de ativação:
- Destino
Antes da procura de proximidade de conexão ser executada para selecionar um mecanismo do sistema de mensagens adequado, o conjunto de mecanismos do sistema de mensagens que são membros do grupo de destino especificado são selecionados. A procura de proximidade de conexão é então limitada a estes mecanismo do sistema de mensagens. Se um grupo de destino não estiver especificado (o padrão), todos os mecanismos de mensagem no barramento são considerados durante a procura de proximidade de conexão.
Por exemplo, se a propriedade Tipo de destino estiver configurada para Nome do Membro do Barramento, a propriedade Destino especifica o nome do membro do barramento a partir do qual mecanismos de mensagens adequados podem ser escolhidos.
- Tipo de destino
- Nome do Membro do Barramento
- O nome de um membro de barramento. Esta opção recupera os mecanismos de sistema de mensagens ativos que são hospedados pelo membro de barramento denominado (um servidor de aplicativos ou cluster de servidores).
- Nome do Grupo do Mecanismo do Sistema de Mensagens Customizado
- O nome de um grupo customizado de mecanismos de sistema de mensagens (que formam um cluster de auto-declaração). Esta opção recupera os mecanismos de sistema de mensagens ativos que foram registrados no grupo customizado denominado.
- Nome do mecanismo do sistema de mensagens
- O nome de um mecanismo do sistema de mensagens. Esta opção recupera os nós de extremidade disponíveis que podem ser utilizados para acessar o mecanismo do sistema de mensagens denominado.
- Significado do Destino
- Essa propriedade define se a procura de proximidade de conexão está restrita apenas aos mecanismos do sistema de mensagens no grupo de destino.
- Preferido
- É preferível que um mecanismo do sistema de mensagens seja selecionado no grupo de destino. Um mecanismo do sistema de mensagens no grupo de destino será selecionado se houver algum disponível. Se um mecanismo do sistema de mensagens não estiver disponível no grupo de destino, um mecanismo do sistema de mensagens fora do grupo de destino será selecionado se estiver disponível no mesmo barramento de integração de serviços.
- Requerido
- É necessário que um mecanismo do sistema de mensagens seja selecionado no grupo de destino. Um mecanismo do sistema de mensagens no grupo de destino será selecionado se houver algum disponível. Se um mecanismo do sistema de mensagens não estiver disponível no grupo de destino, o processo de conexão falhará.
- Cada de transporte de entrada de destino
O nome da cadeia de transporte de entrada do mecanismo do sistema de mensagens que um aplicativo deve destinar, ao conectar-se a um mecanismo do sistema de mensagens em um processo separado do aplicativo.
Essas cadeias de transporte especificam os protocolos de comunicações que podem ser usados para se comunicarem com o servidor de aplicativos aos quais o aplicativo cliente está conectado. Se um mecanismo do sistema de mensagens em outro processo for escolhido, uma conexão poderá ser estabelecida somente se o mecanismo do sistema de mensagens estiver em um servidor que executa a cadeia de transporte de entrada especificada.
São fornecidas as seguintes cadeias de transporte de entrada do mecanismo do sistema de mensagens predefinido:- InboundBasicMessaging
- JFAP sobre TCP/IP
- InboundSecureMessaging
- JFAP sobre SSL sobre TCP/IP
- Proximidade de Conexão
- Para um aplicativo em execução em um servidor de aplicativos, a propriedade define a
proximidade dos mecanismos de sistema de mensagens ao servidor de aplicativos.
Para um aplicativo em execução fora de um servidor de aplicativos, essa propriedade define a
proximidade dos mecanismos de sistema de mensagens relativa ao servidor de autoinicialização.
- Barramento
- As conexões podem ser estabelecidas com os mecanismos dos sistemas de mensagens no mesmo barramento.
Um mecanismo de sistema de mensagens adequado no mesmo servidor é selecionado antes de um mecanismo de sistema de mensagens no mesmo host e, por sua vez, antes de um um mecanismo em outro host.
- Cluster
- As conexões podem ser estabelecidas com os mecanismos dos sistemas de mensagens no mesmo cluster de servidores. Se o aplicativo não estiver em execução em um servidor em cluster, ou se o servidor de autoinicialização
não estiver em um cluster, não haverá mecanismos do sistema de mensagens apropriados.
Um mecanismo de sistema de mensagens adequado no mesmo servidor é selecionado antes de um mecanismo de sistema de mensagens no mesmo host e, por sua vez, antes de um um mecanismo em outro host.
- Host,
- As conexões podem ser estabelecidas com os mecanismos dos sistemas de mensagens no mesmo host. Um mecanismo do sistema de mensagens adequado no mesmo servidor é selecionado antes de um mecanismo do sistema de mensagens adequado no mesmo host.
- Servidor
- As conexões podem ser estabelecidas com os mecanismos dos sistemas de mensagens no mesmo servidor de aplicativos.
- Todos os servidores do cluster podem receber mensagens do aplicativo MDB, para fazer uso completo da força de processamento do cluster.
- Apenas um servidor por vez pode receber mensagens do aplicativo MDB, para garantir o processamento seqüencial das mensagens.
Para obter mais informações, consulte Como um Bean Acionado por Mensagem Conecta-se em um Cluster.