Compartir a través de


Uso de Queue Moniker

El moniker de cola se usa para activar un componente en cola mediante programación. El moniker de cola requiere que reciba el identificador de clase (CLSID) del objeto que se va a invocar desde el nuevo moniker directamente a la derecha de él. Cuando se ha prefijo a la izquierda, el nuevo moniker pasa el CLSID al moniker a la izquierda.

Herramienta administrativa servicios de componentes

No corresponde.

Visual Basic

El parámetro de nombre para mostrar GetObject es "queue:/new:", seguido del identificador de programa o guid de forma de cadena, con o sin llaves, del objeto de servidor al que se va a crear una instancia. En los ejemplos siguientes se muestran tres activaciones válidas de un componente con el moniker de cola:

  1. Set objMyQC = GetObject ("queue:/new:QCShip.Ship")
    
  2. Set objMyQC = GetObject ("queue:/new:{812DF40E-BD88-11D0-8A6D-00C04FC340EE}")
    
  3. Set objMyQC = GetObject ("queue:/new:812DF40E-BD88-11D0-8A6D-00C04FC340EE")
    

C/C++

El parámetro de nombre para mostrar CoGetObject es "queue:/new:", seguido del identificador de programa o guid de forma de cadena, con o sin llaves, del objeto de servidor al que se va a crear una instancia. En los ejemplos siguientes se muestran tres activaciones válidas de un componente con el moniker de cola:

  1. hr = CoGetObject (
      L"queue:/new:QCShip.Ship",
      NULL, IID_IShip, (void**)&pShip);
    
  2. hr = CoGetObject (
      L"queue:/new:{812DF40E-BD88-11D0-8A6D-00C04FC340EE}", 
      NULL, IID_IShip, (void**)&pShip);
    
  3. hr = CoGetObject (
      L"queue:/new:812DF40E-BD88-11D0-8A6D-00C04FC340EE",
      NULL, IID_IShip, (void**)&pShip);
    

Observaciones

El moniker de cola acepta parámetros opcionales que modifican las propiedades del mensaje enviado a Message Queuing. Por ejemplo, para que el mensaje Message Queuing se envíe con una prioridad 6, el componente en cola se activaría de la siguiente manera:

hr = CoGetObject (
  L"queue:Priority=6,ComputerName=MyComp/new:QCShip.Ship",
  NULL, IID_IShip, (void**)&pShip);

En la tabla siguiente se enumeran los parámetros de moniker de cola que afectan a la cola de destino.

Parámetro Descripción
nombreDeEquipo
Especifica la parte del nombre de equipo de un nombre de ruta de acceso de cola de Message Queuing. El nombre de la ruta de acceso de cola de Message Queuing tiene el formato ComputerName<em>QueueName. Si no se especifica, se usa el nombre de equipo asociado a la aplicación configurada.
QueueName
Especifica el nombre de la cola message Queuing. El nombre de la ruta de acceso de cola de Message Queuing tiene el formato ComputerName<em>QueueName. Si no se especifica, se usa el nombre de cola asociado a la aplicación configurada.
Para obtener una cola no transaccional, puede especificar primero el nombre de la cola y, a continuación, crear una aplicación COM+ con el mismo nombre.
PathName
Especifica el nombre completo de la ruta de acceso de cola de Message Queuing. Si no se especifica, se usa el nombre de la ruta de acceso de cola de Message Queuing asociado a la aplicación configurada. Para invalidar el nombre de destino, la ruta de acceso se puede especificar en el siguiente formulario para una instalación de grupo de trabajo de Message Queuing:
Queue:PathName=ComputerName\PRIVATE$\AppName/new:Myproject.CMyClass
Nota: Los lenguajes de programación C y Microsoft Visual C++ requieren dos barras diagonales inversas para representar una barra diagonal inversa dentro de literales de cadena, por ejemplo, chicago\payroll.
FormatName
Al marcar una aplicación COM+ como en cola, COM+ crea una cola de Message Queuing cuyo nombre es el mismo que la aplicación. El nombre de formato Message Queuing de esa cola está en el catálogo COM+, asociado a la aplicación COM+. Para invalidar el nombre de destino, el nombre de formato se puede especificar en el siguiente formulario para una instalación de grupo de trabajo de Message Queuing:
Queue:FormatName=DIRECT=OS:ComputerName\PRIVATE$\AppName/new:ProgId
En una configuración de Active Directory, no se especifica "PRIVATE$" como parte del nombre de la cola.

Nota

Los parámetros de moniker de cola opcionales se procesan de izquierda a derecha. Especifique cada palabra clave solo una vez. Al especificar el parámetro PathName , se reemplazan los parámetros ComputerName y QueueName. Un parámetro FormatName específico elimina el conocimiento previo de un parámetro ComputerName, QueueName y PathName .

Asociación del agente de escucha de componentes en cola con una cola privada específica

El agente de escucha com+ Queued Components solo recibe de las colas asociadas a la aplicación COM+ marcada como en cola. Al marcar una aplicación COM+ como en cola, COM+ crea una cola de Message Queuing cuyo nombre es el mismo que la aplicación. El nombre de formato Message Queuing de esa cola está en el catálogo COM+, asociado a la aplicación COM+. Cuando se inicia y marca la aplicación COM+ como escucha, se inicia un agente de escucha en el proceso de aplicación COM+ y se abre la cola. En la tabla siguiente se enumeran los parámetros de moniker de cola que afectan al mensaje Message Queuing.

Parámetro Descripción
AppSpecific
Especifica un entero sin signo, por ejemplo, AppSpecific=12345.
AuthLevel
Especifica el nivel de autenticación del mensaje. Un mensaje autenticado está firmado digitalmente y requiere un certificado para que el usuario envíe el mensaje. Valores aceptables:
  • MQMSG_AUTH_LEVEL_NONE,0
  • MQMSG_AUTH_LEVEL_ALWAYS,1
Entrega.
Especifica la opción de entrega de mensajes. Este valor se omite para las colas transaccionales. Valores aceptables:
  • MQMSG_DELIVERY_EXPRESS,0
  • MQMSG_DELIVERY_RECOVERABLE,1
EncryptAlgorithm
Especifica el algoritmo de cifrado que va a usar Message Queuing para cifrar y descifrar el mensaje. Valores aceptables:
  • CALG_RC2, CALG_RC4
  • Cualquier valor entero que sea aceptable para Message Queuing para un EncryptAlgorithm.
HashAlgorithm
Especifica una función hash criptográfica. Valores aceptables:
  • CALG_MD2, CALG_MD4, CALG_MD5, CALG_SHA, CALG_SHA1, CALG_MAC, CALG_SSL3_SHAMD5, CALG_HMAC, CALG_TLS1PRF
  • Cualquier valor entero que sea aceptable para Message Queuing para un objeto HashAlgorithm.
Diario
Especifica la opción message Queuing message journal (Diario de mensajes de Message Queuing). Valores aceptables:
  • MQMSG_JOURNAL_NONE,0
  • MQMSG_DEADLETTER,1
  • MQMSG_JOURNAL,2
Label
Especifica una cadena de etiqueta de mensaje hasta MQ_MAX_MSG_LABEL_LEN caracteres.
MaxTimeToReachQueue
Especifica un tiempo máximo, en segundos, para que el mensaje llegue a la cola.
Valores aceptables:
  • INFINITE
  • LONG_LIVED
  • Número de segundos
MaxTimeToReceive
Especifica un tiempo máximo, en segundos, para que la aplicación de destino reciba el mensaje. Valores aceptables:
  • INFINITE
  • LONG_LIVED
  • Número de segundos
Prioridad
Especifica un nivel de prioridad de mensaje, dentro de los valores de Message Queuing permitidos.
Valores aceptables:
  • MQ_MIN_PRIORITY,0
  • MQ_MAX_PRIORITY,7
  • MQ_DEFAULT_PRIORITY,3
  • Número comprendido entre 0 y 7
PrivLevel
Especifica un nivel de privacidad, que se usa para cifrar los mensajes.
Valores aceptables:
  • MQMSG_PRIV_LEVEL_NONE, NONE, 0
  • MQMSG_PRIV_LEVEL_BODY, BODY,
  • MQMSG_PRIV_LEVEL_BODY_BASE, BODY_BASE, 1
  • MQMSG_PRIV_LEVEL_BODY_ENHANCED, BODY_ENHANCED, 3
Seguimiento
Especifica las opciones de seguimiento, usadas en el seguimiento del enrutamiento de Message Queuing.
Valores aceptables:
  • MQMSG_TRACE_NONE,0
  • MQMSG_SEND_ROUTE_TO_REPORT_QUEUE,1

El conjunto completo de funciones del SDK administrativo de COM+ está disponible mediante objetos COM. Esto permite que cualquier programa inicie y detenga las aplicaciones COM+ según sea necesario.

Nota:

Cuando se inicia una aplicación COM+, es la aplicación que se ejecuta, no los componentes individuales de la aplicación. Si una aplicación llama a un componente no en cola, se inicia la aplicación COM+ que contiene el componente. Si la casilla de escucha está habilitada, el agente de escucha también inicia y comienza el procesamiento de mensajes para los componentes en cola. Aunque el servicio de componentes en cola se puede iniciar de esta manera, si empaqueta componentes en cola y no en cola en una sola aplicación COM+, asegúrese de que realmente desea que los componentes en cola se inicien si se ejecuta un componente que no está en cola. Si no es así, empaquete los componentes en cola en una aplicación COM+ que sea independiente de los demás componentes.

Activación de colas de componentes