|Um conjunto de funções do MQSeries é fornecido com o DB2 UDB Versão |7.2, para permitir que instruções SQL inclua operações de |mensagens. Isso significa que esse suporte está disponível para |aplicativos gravados em qualquer linguagem suportada, por exemplo, C, Java, |SQL utilizando qualquer uma das interfaces do banco de dados. Todos os |exemplos mostrados abaixo são em SQL. Esse SQL pode ser utilizado de |outras linguagens de programação em todas as maneiras padrão. Todos os |estilos de mensagens do MQSeries descritos acima são suportados. Para |obter mais informações sobre as funções do MQSeries, consulte a seção |Referência de SQL das Notas sobre o Release.
|Em uma configuração básica, um servidor MQSeries é localizado na máquina |servidora do banco de dados junto com o DB2. As funções do MQSeries |estão instaladas no DB2 e fornecem acesso ao servidor MQSeries. Os |clientes do DB2 podem ser localizados em qualquer máquina acessível para o |servidor do DB2. Vários clientes podem concorrentemente acessar as |funções do MQSeries através do banco de dados. Através das funções |fornecidas, os clientes do DB2 podem executar operações de mensagens dentro de |instruções SQL. Essas operações de mensagens permitem que aplicativos |do DB2 se comuniquem entre eles ou com outros aplicativos do MQSeries.
|O comando enable_MQFunctions é utilizado para ativar um banco de |dados DB2 para as funções do MQSeries.Ele estabelecerá automaticamente |uma configuração padrão simples que os aplicativos do cliente podem utilizar |sem ação administrativa adicional. Para obter uma descrição, consulte |as seções 20.6, enable_MQFunctions e 20.7, disable_MQFunctions. A configuração padrão permite aos |programadores de aplicativos uma maneira rápida para introdução e uma |interface mais simples para desenvolvimento. A funcionalidade adicional |pode ser configurada incrementalmente conforme necessário.
|Exemplo 1: Para enviar uma mensagem simples utilizando a configuração |padrão, a instrução SQL seria:
|VALUES DB2MQ.MQSEND('mensagem simples')
|Isso enviará a mensagem mensagem simples para o gerenciador de |filas e para a fila do MQSeries especificados pela configuração padrão.
|A AMI (Application Messaging Interface) do MQSeries fornece uma separação |limpa entre as ações de mensagens e as definições que ditam como essas ações |devem ser transportadas. Essas definições são mantidas em um arquivo de |repositório externo e gerenciadas utilizando a ferramenta AMI |Administration. Isso torna os aplicativos da AMI simples para |desenvolver e manter. As funções do MQSeries fornecidas com o DB2 são |baseadas na interface MQSeries da AMI. A AMI suporta o uso de um |arquivo de configuração externo, chamado o Repositório da AMI, para armazenar |as informações de configuração. A configuração padrão inclui um |Repositório da AMI do MQSeries configurado para uso com o DB2.
|Os dois conceitos de chave na AMI do MQSeries, os pontos e as políticas de |serviço, são transportados nas funções do DB2 MQSeries. Um ponto de |serviço é um nó de extremidade lógico a partir do qual uma mensagem é enviada |ou recebida. No repositório da AMI, cada ponto de serviço é definido |com um nome de fila e gerenciador de filas do MQSeries. As políticas |definem a qualidade de opções de serviço que deve ser utilizada para uma |determinada operação de mensagens. As qualidades da chave de serviço |incluem a prioridade e a persistência da mensagem. Os pontos de serviço |padrão e as definições de política são fornecidos e podem ser utilizados pelos |desenvolvedores, para simplificar mais tarde seus aplicativos. O |exemplo 1 pode ser regravado como segue para especificar explicitamente o |ponto de serviço e o nome de política padrão:
|Exemplo 2:
|VALUES DB2MQ.MQSEND('DB2.DEFAULT.SERVICE', 'DB2.DEFAULT.POLICY', | 'mensagem simples')
|As filas podem ser atendidas por um ou mais aplicativos no servidor, no |qual as filas e os aplicativos residem. Em muitas configurações, várias |filas serão definidas para suportarem aplicativos e objetivos |diferentes. Por esse motivo, muitas vezes é importante definir os |pontos de serviços diferentes quando criar pedidos do MQSeries. Esse é |demonstrado no seguinte exemplo:
|Exemplo 3:
|VALUES DB2MQ.MQSEND('ODS_Input', 'mensagem simples')
|
|O MQSeries fornece a capacidade para operações de mensagens e de bancos de |dados serem combinadas em uma única unidade de trabalho como uma transação |atômica. Esse recurso não é inicialmente suportado pelas Funções do |MQSeries no Unix e Windows.
|Ao utilizar as funções de envio ou de recebimento, o comprimento máximo de |uma mensagem do tipo VARCHAR é de 4000 caracteres. O comprimento máximo |ao enviar ou receber uma mensagem do tipo CLOB é 1 MB. Esses também são |os tamanhos máximos de mensagens para publicação de uma mensagem utilizando o |MQPublish.
|Às vezes, são necessárias funções diferentes ao se trabalhar com mensagens |CLOB e VARCHAR. Geralmente, a versão CLOB de uma função MQ utiliza a |sintaxe idêntica como seu correlativo. A única diferença é que seu nome |tem os caracteres CLOB no final. Por exemplo, o equivalente CLOB de |MQREAD é MQREADCLOB. Para obter uma lista detalhada dessas funções, |consulte a seção 42.5.3, Dados CLOB Agora São Suportados nas Funções do MQSeries.
|Os códigos de retorno retornados pelas Funções do MQSeries podem ser |encontrados no Apêndice B da Publicação MQSeries Application Messaging |Interface.