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 você pode especificar detalhes de configuração extra para influenciar o processo de conexão; por exemplo, para identificar servidores de bootstrap especiais ou para limitar a conexão a um subgrupo de mecanismos de mensagens disponíveis ou para melhorar a disponibilidade ou o desempenho ou para garantir o processamento sequencial de mensagens recebidas.

Aplicativos em execução em um servidor de aplicativos: Configuração Padrão

Os aplicativos que estão em execução em um servidor de aplicativos são direcionados pelo ambiente WebSphere® Application Server para um mecanismo 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.

Figura 1. Conexão padrão a um mecanismo do sistema de mensagens - Aplicativos em execução em um servidor de aplicativos
Esta figura é representada no texto
circundante.

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, rodando em um contêiner cliente ou fora do ambiente WebSphere Application Server ) não podem localizar um próprio mecanismo de mensagens adequado e devem concluir um processo de bootstrap através de um servidor de bootstrap. 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.

Figura 2 Conexão com um mecanismo do sistema de mensagens - Aplicativos em execução fora de um servidor de aplicativos
Esta figura é representada no texto
circundante.

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.

As propriedades de um Connection Factory JMS utilizado por um aplicativo cliente controlam a seleção de um mecanismo de sistema de mensagens adequado e a maneira com que o cliente conecta-se ao mecanismo de sistema de mensagens selecionado. Por padrão, espera-se que um connection factory use um servidor de autoinicialização que tenha um endereço terminal de localhost:7276:BootstrapBasicMessaging. Ou seja: o aplicativo cliente espera usar um servidor de autoinicialização que está no mesmo host que o cliente e que usa a porta 7276 e a cadeia de transporte de autoinicialização predefinida chamada BootstrapBasicMessaging.
[IBM i]Nota: Para a plataforma IBM® i , você deve (pelo menos) alterar o endereço de terminal padrão de localhost:7276:BootstrapBasicMessaging para your.server.name:7276:BootstrapBasicMessaging.

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, você poderá 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

O processo de seleção é utilizado para escolher um mecanismo de sistema de mensagens a que um aplicativo deve se conectar, para que possa utilizar os recursos de um barramento de integração do serviço. As informações que controlam o processo de seleção são configuradas em um dos seguintes locais:
  • 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.
Embora uma conexão possa ser estabelecida com qualquer mecanismo do sistema de mensagens disponível, o processo de conexão aplica algumas regras simples para encontrar o mecanismo do sistema de mensagens mais adequado. Para um aplicativo em execução em um servidor de aplicativos, o processo é o seguinte:
  1. 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.
  2. 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.
  3. 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.
Para um aplicativo em execução fora de um servidor de aplicativos, os pedidos de conexão são balanceados por carga de trabalho entre todos os mecanismos do sistema de mensagens disponíveis no barramento.

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
O nome de um destino que identifica um grupo de mecanismos dos sistemas de mensagens. Especifique o tipo de destino utilizando a propriedade Tipo de Destino.

Antes que a pesquisa de proximidade de conexão seja realizada para selecionar um mecanismo de mensagens adequado, são selecionados o conjunto de mecanismos de mensagens que são membros do grupo de destino especificado. A procura de proximidade de conexão é então limitada a estes mecanismo de 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 for configurada como Nome do membro do barramento, a propriedade Target especifica o nome do membro do barramento a partir do qual os mecanismos de mensagens adequados podem ser escolhidos.

Tipo de destino
O tipo de destino denominado na propriedade 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 de sistema de mensagens. Esta opção recupera os nós de extremidade disponíveis que podem ser utilizados para acessar o mecanismo de 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.
Necessário
É 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 for escolhido um mecanismo do sistema de mensagens em outro processo, uma conexão poderá ser estabelecida apenas se o mecanismo do sistema de mensagens estiver em um servidor que execute a cadeia de transporte de entrada especificada.

São fornecidas as seguintes cadeias de transporte de entrada do mecanismo de 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 o servidor bootstrap não estiver em um cluster, então não há mecanismos de mensagens adequados.

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 de mensagens adequado no mesmo servidor é selecionado antes de um mecanismo 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.
Para aplicativos MDB que se conectam a um membro do barramento do cluster, é possível também ativar uma das seguintes configurações adicionais:
  • 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 sequencial das mensagens.

Para obter mais informações, consulte Como um bean acionado por mensagens se conecta em um cluster.