Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os aplicativos cliente que se conectam ao Barramento de Serviço premium do Azure e usam a biblioteca JMS do Barramento de Serviço do Azure podem usar as entidades abaixo.
Queues
As filas no JMS são semanticamente comparáveis às tradicionais filas do Barramento de Serviço.
Para criar uma fila, use os métodos abaixo na JMSContext classe –
Queue createQueue(String queueName)
Tópicos
Os tópicos no JMS são semanticamente comparáveis com os tópicos tradicionais do Service Bus.
Para criar um Tópico, use os métodos abaixo na JMSContext classe –
Topic createTopic(String topicName)
Filas temporárias
Se um aplicativo cliente exigir uma entidade temporária que exista para o tempo de vida do aplicativo, ele poderá usar filas temporárias. Essas entidades são usadas no padrão Solicitação-Resposta .
Para criar uma fila temporária, use os métodos abaixo na JMSContext classe –
TemporaryQueue createTemporaryQueue()
Tópicos temporários
Assim como as Filas Temporárias, existem tópicos temporários para habilitar a publicação/assinatura por meio de uma entidade temporária que existe para o tempo de vida do aplicativo.
Para criar um tópico temporário, use os métodos abaixo na JMSContext classe –
TemporaryTopic createTemporaryTopic()
Assinaturas do JMS (serviço de mensagens Java)
Embora essas assinaturas sejam semanticamente semelhantes às assinaturas nos tópicos do Bus de Serviço (ou seja, existam em um tópico e habilitem a semântica de publicação/inscrição), a especificação do Java Message Service apresenta os conceitos de atributos Compartilhados, Não compartilhados, **Duráveis e Não duráveis para uma determinada assinatura.
Observação
As assinaturas abaixo estão disponíveis na camada Premium do Barramento de Serviço do Azure para aplicativos cliente que se conectam ao Barramento de Serviço do Azure usando a biblioteca JMS do Barramento de Serviço do Azure.
Somente assinaturas duráveis podem ser criadas usando o portal do Azure.
Assinaturas duráveis compartilhadas
Uma assinatura durável compartilhada é usada quando todas as mensagens publicadas em um tópico devem ser recebidas e processadas por um aplicativo, independentemente de o aplicativo estar consumindo ativamente por meio da assinatura a todo momento.
Qualquer aplicativo autenticado para receber do Barramento de Serviço pode receber da assinatura durável compartilhada.
Para criar uma assinatura durável compartilhada, use os métodos abaixo na JMSContext classe –
JMSConsumer createSharedDurableConsumer(Topic topic, String name)
JMSConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector)
A assinatura durável compartilhada continua a existir, a menos que seja excluída usando o unsubscribe método na JMSContext classe.
void unsubscribe(String name)
Assinaturas duráveis não compartilhadas
Como ocorre com uma assinatura durável compartilhada, uma assinatura durável não compartilhada é utilizada quando todas as mensagens publicadas em um tópico devem ser recebidas e processadas por um aplicativo, independentemente de o aplicativo estar consumindo ativamente da assinatura.
No entanto, como essa assinatura é uma assinatura não compartilhada, somente o aplicativo que criou a assinatura pode receber dela.
Para criar uma assinatura durável não compartilhada, use os métodos abaixo da JMSContext classe –
JMSConsumer createDurableConsumer(Topic topic, String name)
JMSConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal)
Observação
No noLocal momento, o recurso não tem suporte e é ignorado.
A assinatura durável não compartilhada continua a existir, a menos que seja excluída usando o unsubscribe método na JMSContext classe.
void unsubscribe(String name)
Assinaturas não duráveis compartilhadas
Uma assinatura não durável compartilhada é usada quando vários aplicativos cliente precisam receber e processar mensagens por meio de uma assinatura única, somente enquanto estiverem ativamente consumindo/recebendo por meio dela.
Como a assinatura não é durável, ela não é persistente. As mensagens não são recebidas por essa assinatura quando não há consumidores ativos nela.
Para criar uma assinatura não durável compartilhada, crie uma JmsConsumer conforme mostrado nos métodos abaixo da classe JMSContext
JMSConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName)
JMSConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector)
A assinatura não durável compartilhada continua existindo até que haja consumidores ativos recebendo dela.
Assinaturas não duráveis não compartilhadas
Uma assinatura não durável não compartilhada é usada quando o aplicativo cliente precisa receber e processar mensagens por meio de uma assinatura, somente enquanto estiver consumindo ativamente dela. Somente um consumidor pode existir nessa assinatura, ou seja, o cliente que criou a assinatura.
Como a assinatura não é durável, ela não é persistente. As mensagens não são recebidas por esta assinatura quando não há nenhum consumidor ativo nela.
Para criar uma assinatura não durável não compartilhada, crie uma JMSConsumer conforme mostrado nos métodos abaixo da JMSContext classe –
JMSConsumer createConsumer(Destination destination)
JMSConsumer createConsumer(Destination destination, String messageSelector)
JMSConsumer createConsumer(Destination destination, String messageSelector, boolean noLocal)
Observação
No noLocal momento, o recurso não tem suporte e é ignorado.
A assinatura não durável não compartilhada continuará existindo enquanto houver um consumidor ativo recebendo dela.
Seletores de mensagem
Assim como Filters and Actions existem para assinaturas regulares do Service Bus, Seletores de Mensagens existem para assinaturas JMS.
Os seletores de mensagem podem ser configurados em cada uma das assinaturas do JMS e existir como uma condição de filtro nas propriedades do cabeçalho da mensagem. Somente as mensagens com propriedades de cabeçalho que correspondem à expressão do seletor de mensagem são entregues. Um valor nulo ou uma cadeia de caracteres vazia indica que não há nenhum seletor de mensagem para a Assinatura/Consumidor do JMS.
Conceitos adicionais para assinaturas do JMS (Java Message Service) 2.0
Escopo do cliente
As assinaturas, conforme especificado na API do JMS (Java Message Service) 2.0, podem ou não estar limitadas a aplicativos de cliente específicos (identificados com o apropriado clientId).
Depois que a assinatura estiver no escopo, ela só poderá ser acessada por meio de aplicativos cliente que tenham a mesma ID de cliente.
Qualquer tentativa de acessar uma assinatura com escopo para uma ID de cliente específica (digamos clientId1) de um aplicativo que tenha outra ID de cliente (digamos clientId2) levará à criação de outra assinatura com escopo para a outra ID do cliente (clientId2).
Observação
A ID do cliente pode ser nula ou vazia, mas deve corresponder à ID do cliente definida no aplicativo cliente JMS. Da perspectiva do Barramento de Serviço do Azure, uma ID de cliente nula e uma ID de cliente vazia têm o mesmo comportamento.
Se a ID do cliente estiver definida como nula ou vazia, ela só será acessível para aplicativos cliente cuja ID do cliente também está definida como nula ou vazia.
Compartilhabilidade
As assinaturas compartilhadas permitem que vários clientes/consumidores (ou seja, objetos JMSConsumer) recebam mensagens deles.
Observação
As assinaturas compartilhadas com escopo definido para uma ID de cliente específica ainda podem ser acessadas por vários clientes/consumidores (ou seja, objetos do JMSConsumer), mas todos os aplicativos cliente devem ter a mesma ID de cliente.
As assinaturas não compartilhadas permitem que apenas um único cliente/consumidor (ou seja, objeto JMSConsumer) receba mensagens deles. Se um JMSConsumer for criado em uma assinatura não compartilhada que já tem uma escuta ativa JMSConsumer de mensagens, uma JMSException será lançada.
Durability
As assinaturas duráveis são persistentes e continuam a coletar mensagens do tópico, independentemente se o aplicativo (JMSConsumer) está consumindo mensagens por meio delas.
As assinaturas não duráveis não são persistentes e coletam mensagens do tópico somente enquanto há um aplicativo (JMSConsumer) consumindo mensagens por meio dela.
Representação de assinaturas com escopo de cliente
Considerando que as assinaturas JMS (escopo do cliente) devem coexistir com as assinaturas existentes, a maneira como as assinaturas JMS (escopo do cliente) são representadas usam o formato a seguir.
- <SUBSCRIPTION-NAME>$<CLIENT-ID>$D (para assinaturas duráveis)
- <SUBSCRIPTION-NAME>$<CLIENT-ID>$ND (para assinaturas não duráveis)
Aqui, $ está o delimitador.
Próximas etapas
Para obter mais informações e exemplos de como usar mensagens do Service Bus, consulte os tópicos avançados a seguir: