Como usar o Moniker de Fila
O moniker de fila é usado para ativar um componente em fila programaticamente. O moniker de fila requer que ele receba o ID de classe (CLSID) do objeto a ser chamado do novo moniker diretamente à direita dele. Quando prefixado à esquerda, o novo apelido passa o CLSID para o apelido à esquerda dele.
Ferramenta administrativa de serviços de componentes
Não se aplica.
Visual Basic
O parâmetro de nome de exibição GetObject é "queue:/new:", seguido pelo ID do programa ou GUID de forma de cadeia de caracteres, com ou sem chaves, do objeto de servidor a ser instanciado. Os exemplos a seguir mostram três ativações válidas de um componente com o moniker de fila:
-
Set objMyQC = GetObject ("queue:/new:QCShip.Ship")
-
Set objMyQC = GetObject ("queue:/new:{812DF40E-BD88-11D0-8A6D-00C04FC340EE}")
-
Set objMyQC = GetObject ("queue:/new:812DF40E-BD88-11D0-8A6D-00C04FC340EE")
C/C++
O parâmetro de nome de exibição CoGetObject é "queue:/new:", seguido pelo ID do programa ou GUID de forma de cadeia de caracteres, com ou sem chaves, do objeto de servidor a ser instanciado. Os exemplos a seguir mostram três ativações válidas de um componente com o moniker de fila:
-
hr = CoGetObject ( L"queue:/new:QCShip.Ship", NULL, IID_IShip, (void**)&pShip);
-
hr = CoGetObject ( L"queue:/new:{812DF40E-BD88-11D0-8A6D-00C04FC340EE}", NULL, IID_IShip, (void**)&pShip);
-
hr = CoGetObject ( L"queue:/new:812DF40E-BD88-11D0-8A6D-00C04FC340EE", NULL, IID_IShip, (void**)&pShip);
Comentários
O moniker de fila aceita parâmetros opcionais que alteram as propriedades da mensagem enviada para o serviço de enfileiramento de mensagens. Por exemplo, para fazer com que a mensagem do serviço de enfileiramento de mensagens seja enviada com prioridade 6, o componente enfileirado seria ativado da seguinte maneira:
hr = CoGetObject (
L"queue:Priority=6,ComputerName=MyComp/new:QCShip.Ship",
NULL, IID_IShip, (void**)&pShip);
A tabela a seguir lista os parâmetros de moniker de fila que afetam a fila de destino.
Parâmetro | Descrição |
---|---|
ComputerName |
Especifica a parte do nome do computador de um nome de caminho da fila do serviço de enfileiramento de mensagens. O nome do caminho da fila do serviço de enfileiramento de mensagens é formatado como ComputerName em QueueName<.> Se não for especificado, o nome do computador associado ao aplicativo configurado será usado. |
QueueName |
Especifica o nome da fila do serviço de enfileiramento de mensagens. O nome do caminho da fila do serviço de enfileiramento de mensagens é formatado como ComputerName em QueueName<.> Se não for especificado, o nome da fila associado ao aplicativo configurado será usado. Para obter uma fila não transacional, você pode especificar o nome da fila primeiro e, em seguida, criar um aplicativo COM+ com o mesmo nome. |
PathName |
Especifica o nome completo do caminho da fila do serviço de enfileiramento de mensagens. Se não for especificado, o nome do caminho da fila do serviço de enfileiramento de mensagens associado ao aplicativo configurado será usado. Para substituir o nome de destino, o caminho pode ser especificado no seguinte formulário para uma instalação de grupo de trabalho do serviço de enfileiramento de mensagens: Fila:PathName ComputerName\PRIVATE$\AppName=/new:Myproject.CMyClass Nota: As linguagens de programação C e Microsoft Visual C++ exigem duas barras invertidas para representar uma barra invertida dentro de literais de cadeia de caracteres, por exemplo, chicago\payroll. |
Nome do formato |
Quando você marca um aplicativo COM+ como enfileirado, COM+ cria uma fila de Enfileiramento de Mensagens cujo nome é o mesmo do aplicativo. O nome do formato do serviço de enfileiramento de mensagens dessa fila está no catálogo COM+, associado ao aplicativo COM+. Para substituir o nome de destino, o nome do formato pode ser especificado no seguinte formulário para uma instalação de grupo de trabalho do serviço de enfileiramento de mensagens: Fila:FormatName=DIRECT=OS:ComputerName\PRIVATE$\AppName/new:ProgId Em uma configuração do Active Directory, "PRIVATE$" não é especificado como parte do nome da fila. |
Observação
Os parâmetros opcionais de moniker de fila são processados da esquerda para a direita. Especifique cada palavra-chave apenas uma vez. A especificação do parâmetro PathName substitui os parâmetros ComputerName e QueueName. Um parâmetro FormatName específico exclui o conhecimento prévio de um parâmetro ComputerName, QueueName e PathName.
Associando o ouvinte de componentes em fila a uma fila privada específica
O ouvinte de componentes em fila COM+ recebe somente de filas associadas ao aplicativo COM+ marcado como enfileirado. Quando você marca um aplicativo COM+ como enfileirado, COM+ cria uma fila de Enfileiramento de Mensagens cujo nome é o mesmo do aplicativo. O nome do formato do serviço de enfileiramento de mensagens dessa fila está no catálogo COM+, associado ao aplicativo COM+. Quando o aplicativo COM+ é iniciado e marcado como escuta, um ouvinte no processo de aplicativo COM+ é iniciado e a fila é aberta. A tabela a seguir lista os parâmetros de moniker de fila que afetam a mensagem do serviço de enfileiramento de mensagens.
Parâmetro | Descrição |
---|---|
Específico do aplicativo |
Especifica um inteiro não assinado, por exemplo, AppSpecific=12345. |
AuthLevel |
Especifica o nível de autenticação da mensagem. Uma mensagem autenticada é assinada digitalmente e requer um certificado para o usuário que envia a mensagem. Valores aceitáveis:
|
Entrega |
Especifica a opção de entrega de mensagem. Esse valor é ignorado para filas transacionais. Valores aceitáveis:
|
EncryptAlgorithm |
Especifica o algoritmo de criptografia a ser usado pelo serviço de enfileiramento de mensagens para criptografar e descriptografar a mensagem. Valores aceitáveis:
|
Algoritmo de Hash |
Especifica uma função de hash criptográfico. Valores aceitáveis:
|
Diário |
Especifica a opção de diário de mensagens do serviço de enfileiramento de mensagens. Valores aceitáveis:
|
Rótulo |
Especifica uma cadeia de caracteres de rótulo de mensagem de até MQ_MAX_MSG_LABEL_LEN caracteres. |
MaxTimeToReachQueue |
Especifica um tempo máximo, em segundos, para que a mensagem chegue à fila. Valores aceitáveis:
|
MaxTimeToReceive |
Especifica um tempo máximo, em segundos, para que a mensagem seja recebida pelo aplicativo de destino. Valores aceitáveis:
|
Prioridade |
Especifica um nível de prioridade de mensagem, dentro dos valores permitidos do serviço de enfileiramento de mensagens. Valores aceitáveis:
|
PrivLevel |
Especifica um nível de privacidade, usado para criptografar mensagens. Valores aceitáveis:
|
Trace |
Especifica as opções de rastreamento, usadas no rastreamento do serviço de enfileiramento de mensagens. Valores aceitáveis:
|
O conjunto completo de funções do SDK administrativo COM+ está disponível usando objetos COM. Isso permite que qualquer programa inicie e pare aplicativos COM+, conforme necessário.
Observação
Quando um aplicativo COM+ é iniciado, é o aplicativo que está sendo executado, não os componentes individuais dentro do aplicativo. Se um aplicativo chamar um componente não enfileirado, o aplicativo COM+ que contém o componente será iniciado. Se a caixa de seleção ouvinte estiver habilitada, o ouvinte também iniciará e iniciará o processamento de mensagens para componentes enfileirados. Embora o serviço de componentes em fila possa ser iniciado dessa maneira, se você empacotar componentes em fila e não enfileirados em um único aplicativo COM+, certifique-se de que realmente deseja que os componentes em fila sejam iniciados se um componente não enfileirado for executado. Se esse não for o caso, empacote os componentes enfileirados em um aplicativo COM+ separado dos outros componentes.