O Método createQueue ou createTopic e o Provedor de Sistemas de Mensagens Padrão

É possível usar o método Session.createQueue(String) ou o método Session.createTopic(String), em vez de usar a consulta de JNDI para criar uma Fila JMS ou Tópico JMS com o provedor de sistemas de mensagens.

Os aplicativos podem usar o método InitialContext.lookup() para recuperar objetos administrados. Uma abordagem alternativa, mas menos gerenciável, para obter, administrativamente, objetos de destino JMS definidos pela consulta de JNDI é usar o método Session.createQueue(String) ou o método Session.createTopic(String). Por exemplo,
Queue q = mySession.createQueue("Q1");
cria uma instância de Fila de JMS que pode ser utilizada para referenciar o Q1 de destino existente.

Com o fornecedor de sistema de mensagens padrão, o destino existente aparece como uma fila ou espaço de tópico no barramento ao qual a sessão está conectada.

createQueue

O método Session.createQueue(String) é usado para criar um objeto da Fila JMS representando um destino existente. Isto fornece abordagem alternativa, porém menos gerenciável, para obter objetos de Fila de JMS definidos de forma administrativa pela consulta de JNDI.

Formato Simples
Na sua forma mais simples, o parâmetro para o método createQueue é o nome de um destino existente no barramento ao qual a sessão está conectada. Por exemplo, se houver uma fila denominada Q1, o método a seguir criará uma instância de Fila de JMS Queue que pode ser utilizada para referenciar esse destino:
Queue q = mySession.createQueue("Q1");
Formato de URI
Para as situações mais complexas, os aplicativos podem usar um formato baseado em URI. O formato URI permite que um número arbitrário de pares de valores de nomes sejam fornecidos para configurar diversas propriedades do objeto Queue. A URI da fila é identificada pelo prefixo fila://, seguida do nome do destino. O formato simples do Q1 anterior pode ser expresso com o seguinte URI:
Queue q = mySession.createQueue("queue://Q1");
Os pares de nome e valor são apresentados com um ponto de interrogação ?. Por exemplo, um aplicativo pode conectar uma sessão a um barramento e utilizar o seguinte formato para criar uma instância da fila de JMS para o Q2 em um barramento diferente, denominado otherBus:
Queue q = mySession.createQueue("queue://Q2?busName=otherBus");
Ao enviar mensagens para o IBM MQ, o nome da fila deve ser seguido por um sinal de arroba (@) e o nome do gerenciador de filas no qual a fila está localizada, por exemplo:
Queue q = mySession.createQueue("queue://Q2@qmgr?busName=otherBus");
Vários pares de nome e valor são separados por um e comercial &, por exemplo:
Queue q = mySession.createQueue("queue://Q2?busName=otherBus&deliveryMode=
Application&readAhead=AsConnection&priority=6");
Propriedades
busName, deliveryMode, priority, readAhead e timeToLive. Consulte as informações geradas pela API para obter uma descrição dessas propriedades.

createTopic

O método Session.createTopic(String) é usado para criar um objeto de Tópico JMS representando um destino existente. (Observe que para tópicos este é o espaço de tópico ao invés do tópico que existe.) Isto fornece abordagem alternativa, porém, menos gerenciável, para obter objetos de Tópico de JMS definidos de forma administrativa pela consulta de JNDI.

Formato Simples
Na sua forma mais simples, o parâmetro para o método createTopic é o nome de um tópico no espaço de tópico padrão no barramento ao qual a sessão está conectada. Por exemplo, se o espaço de tópico padrão existir, uma instância do Tópico de JMS poderá ser utilizada para referenciar o tópico cats no espaço de tópico padrão:
Topic t = mySession.createTopic("cats");
Para especificar um espaço de tópico não padrão, a sintaxe especial do formato topicSpace:topic pode ser utilizada. Por exemplo:
Topic t = mySession.createTopic("kennelTopicSpace:dogs");
Formato de URI
Para as situações mais complexas, pode ser utilizada um formato baseado em URI. A URI do tópico é identificada pelo prefixo topic:// seguida do nome do tópico. Os exemplos anteriores podem ser expressos como os seguintes URIs:
Topic t = mySession.createTopic("topic://cats");

Topic t = mySession.createTopic("topic://dogs?topicSpace=kennelTopicSpace");

Como ocorre nas filas, vários pares de nome e valor podem ser separados por e comercial&.

Propriedades
busName, deliveryMode, priority, readAhead, timeToLive e topicSpace. Consulte as informações geradas pela API para obter uma descrição dessas propriedades.

Suporte para as URIs MA88

Os aplicativos do WebSphere Application Server Versão 5.1 podem usar os métodos createQueue e createTopic para criar objetos de Fila e Tópico JMS com o sistema de mensagens integrado Versão 5 (o provedor de sistemas de mensagens do Versão 5.1). Para auxiliar na migração de tais aplicativos, o provedor de sistemas de mensagens padrão (o barramento de integração de serviços) suporta um subconjunto grande de parâmetros de cadeia válidos, específicos do MA88, para os métodos createQueue e createTopic.

Gerenciador de Filas Padrão
Uma URI MA88 para uma fila inclui o nome do gerenciador de filas, por exemplo:
queue://qm/queue

Para especificar o gerenciador de filas padrão, o seu nome é omitido; por exemplo: queue:///queue (observe as três barras, ///). Como a interpretação do gerenciador de filas padrão é logicamente consistente com o conceito de uma fila no barramento atual, o barramento tolera a presença de três barras depois do prefixo queue:. Isso permite que o barramento use URIs de fila MA88 com um gerenciador de filas padrão sem alteração.

Gerenciador de filas não padrão
Se um URI de fila MA88 especificar um gerenciador de filas não padrão, como em queue://qm/queue, isso terá uma interpretação ambígua no barramento. Para realçar o potencial problema e garantir que o destino seja levado em consideração durante o processo de porting, tal URI gerará um JMSException se passado para o método createQueue().
Propriedades de MA88
Como nos URIs de barramento, os URIs MA88 podem conter vários pares de nome e valor que especificam as propriedades de destino. Diversas propriedades específicas de MA88 não possuem equivalência direta no barramento e são ignoradas silenciosamente. No entanto, as seguintes propriedades de MA88 são mapeadas para barramentos equivalentes:
Nome de MA88 Nome do Barramento de Integração de Serviço Comunicados
expiry timeToLive
persistence deliveryMode

1 = Não Persistente
2 = Persistente
Outra coisa = Aplicativo

Conversão de Caractere Curinga de Tópico

Um tópico usado para mensagens grandes pode incluir curingas. A sintaxe do curinga usada no MA88 difere da sintaxe do XPath usada no barramento, assim, se o URI do MA88 contiver curingas, o barramento tentará convertê-los para os XPath equivalentes. A conversão executada depende da presença da propriedade brokerVersion na URI MA88. O provedor do sistema de mensagens padrão do WebSphere Application Server Versão 5.1 necessitava de qualquer URI especificando um curinga do tópico para incluir o brokerVersion=1 em pares de nome e valor. O barramento, portanto, usabrokerVersion=1 como o acionador para realizar a conversão do curinga de MQSI para XPath.

Distinção entre letras maiúsculas e minúsculas

Todas as partes do parâmetro de cadeia para createQueue e createTopic fazem distinção entre maiúsculas e minúsculas.

Várias Instâncias da Mesma Propriedade

Se uma URI apresentar várias ocorrências de uma determinada propriedade com valores conflitantes, não será especificado qual valor será usado.

Propriedades Conflitantes de MA88 e Barramento

Se uma URI apresentar a propriedade e o equivalente a MA88 dessa propriedade com valores conflitantes, não será especificado qual valor será usado.

Propriedades Desconhecidas

Qualquer par de valor e nome para o qual o nome da propriedade não é reconhecido é ignorado sem notificação de erro.

Caracteres Especiais de Escape

Os seguintes caracteres têm significado especial nos parâmetros de cadeia createQueue e createTopic:
: (dois pontos)
Utilizados como um separador entre o espaço de tópico e as cadeias de tópico de formato curto
? (ponto de interrogação)
É utilizado para indicar o início dos pares de nome e valor.
& (e comercial)
Utilizado para separar vários pares de nome e valor.
Se desejar usar qualquer um desses caracteres em uma URI, você deverá primeiro prefixá-lo com uma barra invertida \. O caractere \ também pode ter um caractere de escape dobrando-o; \\. Observe que o caractere \ é tratado como caractere especial pela linguagem Java™ e deve ser duplicado quando colocado em constantes de cadeia de caracteres; por exemplo:
createTopic("myTop\\:ic")                      cria um tópico com o nome "myTop:ic"
createTopic("topic://my\\?Topi\\\\c")             cria um tópico com o nome "my?Topi\c"
createQueue("queue://q1?busName=silly\\&bus")     cria uma fila com o nome de barramento "silly&bus"

Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjn0001_
Nome do arquivo: rjn0001_.html