WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Perfil de supervisión

Para personalizar sucesos una vez que se ha desplegado un flujo de mensajes, pero sin volver a desplegar el flujo, utilice el servicio configurable de perfil de supervisión. Con este servicio puede aplicar un perfil de supervisión a uno o más flujos de mensajes.

Un perfil de supervisión es un documento XML que especifica los orígenes de sucesos de un flujo de mensajes que emitirá sucesos, y las propiedades de dichos sucesos. El XML del perfil de supervisión debe ajustarse al archivo de esquema XML MonitoringProfile.xsd.

Perfil de supervisión de esquema

A continuación encontrará un perfil de supervisión de esquema que contiene un solo origen de sucesos que ilustra la estructura:

<p:monitoringProfile
xmlns:p="http://www.ibm.com/xmlns/prod/websphere/messagebroker/6.1.0.3/monitoring/profile" p:version="2.0">
    <p:eventSource p:enabled="true" p:eventSourceAddress="SOAPInput.transaction.Start">
        <p:eventPointDataQuery>
            <p:eventIdentity>
                <p:eventName p:literal="" p:queryText=""/>
            </p:eventIdentity>
            <p:eventCorrelation>
                <p:localTransactionId p:queryText="" p:sourceOfId="automatic"/>
                <p:parentTransactionId p:queryText="" p:sourceOfId="automatic"/>
                <p:globalTransactionId p:queryText="" p:sourceOfId="automatic"/>
            </p:eventCorrelation>
           <p:eventFilter p:queryText="true()"/>           <p:eventUOW p:unitOfWork="messageFlow" />        </p:eventPointDataQuery>
        <p:applicationDataQuery>
            <p:simpleContent p:dataType="boolean" p:name="" p:targetNamespace="">
                <p:valueQuery p:queryText=""/>
            </p:simpleContent>
            <p:complexContent p:name="" targetNamespace="">
                <p:payloadQuery p:queryText=""/>
            </p:complexContent>
        </p:applicationDataQuery>
        <p:bitstreamDataQuery p:bitstreamContent="all" p:encoding="base64Binary"/>
    </p:eventSource>
</p:monitoringProfile>
El elemento root es p:monitoringProfile. Contiene uno o más elementos p:eventSource,y cada uno de ellos especifica un origen de sucesos y define sus propiedades. Cada elemento p:eventSource contiene:
  • Un elemento p:eventPointDataQuery que proporciona información clave sobre el suceso.
  • Opcional: un elemento p:applicationDataQuery si la carga útil del suceso va a incluir campos de datos extraídos de un mensaje.
  • Opcional: un elemento p:bitstreamDataQuery si la carga útil del suceso va a incluir datos de corriente de datos de un mensaje.

Creación de un perfil de supervisión

Para ayudarle a crear perfiles de supervisión, el ejemplo siguiente contiene un archivo XML de perfil de supervisión de esquema y el archivo de esquema XML del perfil de supervisión (MonitoringProfile.xsd):

Valide los perfiles de supervisión con el esquema XML para asegurarse de que son correctos.

Puede ver información sobre los ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit o el Information Center en línea. Puede ejecutar ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit.

Consejo: Si tiene un flujo de mensajes desplegado que tiene propiedades de supervisión configuradas utilizando el editor de flujos de mensajes, puede utilizar el mandato mqsireportflowmonitoring para crear el archivo XML de perfil de supervisión equivalente para el flujo de mensajes. Puede utilizar este perfil como punto de partida para crear otros perfiles de supervisión.

En los siguientes pasos se describe cómo crear un XML de perfil de supervisión. Siga estos pasos para cada elemento p:eventSource.

  1. Especifique el atributo p:eventSource/@p:eventSourceAddress.
    Es una serie que identifica de forma exclusiva el origen del suceso en el flujo de mensajes. Debe seguir el formato fijo para sucesos de transacción y sucesos de termina, como se muestra en la siguiente tabla:
    Tipo de suceso Dirección del origen de sucesos
    Suceso de inicio de transacción etiquetanodo.transaction.Start
    Suceso de finalización de transacción etiquetanodo.transaction.End
    Suceso de retrotracción de transacción etiquetanodo.transaction.Rollback
    Suceso de terminal etiquetanodo.terminal.<Terminal>
    Nota: etiquetanodo es la etiqueta del nodo tal como la conocen los componentes de ejecución de intermediario. Si el nodo está un subflujo, la etiqueta lo refleja. Por ejemplo, el flujo A contiene una instancia del flujo B como un subflujo con la etiqueta myB; Por ejemplo, el flujo A contiene una instancia del flujo B como un subflujo con la etiqueta myCompute. La etiquetanodo para el nodo Compute es myB.myCompute.

    En el suceso emitido, la serie de dirección de origen de suceso se establece en el atributo wmb:eventData/@wmb:eventSourceAddress.

  2. Opcional: especifique el nombre por el que se conocerá este origen de suceso, en el elemento p:eventPointDataQuery/p:eventIdentity/p:eventName.
    • Si el nombre de suceso es una serie fija, rellene el atributo p:eventName/@p:literal
    • Si el nombre de suceso va a extraerse de un campo del mensaje, rellene el atributo p:eventName/@p:queryText especificando una consulta XPath.

    En el suceso emitido, el nombre de suceso se establece en el atributo wmb:eventPointData/wmb:eventIdentity/@wmb:eventName.

    Si el elemento p:eventName no se proporciona, @wmb:eventName en el suceso emitido toma el valor predeterminado @p:eventSourceAddress.

  3. Opcional: Complete el atributo p:eventPointDataQuery/p:eventFilter/@p:queryText especificando una expresión XPath para controlar si se ha emitido el suceso. La expresión debe ofrecer True como valor de evaluación (se emite el suceso) o Falso (no se emite el suceso). La expresión puede hacer referencia a campos del árbol de mensajes o de cualquier otro lugar del mensaje ensamblado. Si un suceso no contiene un elemento eventFilter, el suceso se emitirá siempre.

    Mediante este recurso, puede ajustar las emisiones de sucesos según sus necesidades empresariales, filtrando los sucesos que no coincidan con un conjunto de reglas. De este modo se puede reducir la cantidad de sucesos emitidos, y reducir también la carga de trabajo en la aplicación de supervisión.

  4. Opcional: rellene el elemento p:applicationDataQuery, si el suceso va a contener los campos de datos seleccionados extraídos del mensaje. Puede extraer uno o más campos de los datos del mensaje e incluirlo con el suceso. Los campos pueden ser simples o complejos.
    • Para cada campo de datos simple, rellene un elemento p:simpleContent:
      • Rellene el atributo p:simpleContent/p:valueQuery/@p:queryText especificando una consulta XPath.
      • Rellene los atributos p:simpleContent/@p:name, @p:namespace y @p:dataType. El valor de @p:dataType debe ser uno de los siguientes: boolean, date, dateTime, decimal, duration, integer, string o time.
    • Para cada campo de datos complejo, rellene un elemento p:complexContent.
      • Relleno el atributo p:complexContent/p:payloadQuery/@p:queryText especificando una consulta XPath.
      • Rellene los atributos p:complexContent/@p:name y @p:namespace.

    Este recurso se utiliza comúnmente para comunicar datos empresariales importantes en un suceso empresarial. Si el suceso contiene la corriente de bits de entrada, este recurso también se puede utilizar para extraer campos clave, lo que permite a otra aplicación proporcionar un seguimiento de auditoría o volver a someter mensajes anómalos.

    En el suceso emitido, los datos extraídos se establecen en los elementos wmb:applicationData/wmb:simpleContent y wmb:applicationData/wmb:complexContent.

  5. Opcional: rellene el elemento p:bitstreamDataQuery, si el suceso va a capturar datos de corriente de bits de mensajes:
    • Rellene el atributo @p:bitstreamContent. El valor del atributo debe ser headers, body o all.
    • Rellene el atributo @p:encoding. El valor del atributo debe ser CDATA, base64Binary o hexBinary.

    En el suceso emitido, los datos de corriente de bits emitidos se establecen en el elemento wmb:bitstreamData/wmb:bitstream.

  6. Opcional: complete el elemento p:eventPointDataQuery/p:eventCorrelation. Para obtener información sobre la correlación, consulte Sucesos de correlación y supervisión.

    Cada suceso de supervisión emitido puede contener hasta tres atributos de correlación. Si no se especifica información de correlación en el perfil de supervisión, no se utilizarán atributos de correlación.

    1. Opcional: rellene el elemento p:localTransactionId.
      • Si desea volver a utilizar el correlacionador local del árbol de entorno, establezca el atributo p:localTransactionId/@p:sourceOfId en automatic. Si no existe ningún correlacionador local, se generará un nuevo valor exclusivo y se guardará en el árbol de entorno.
      • Si desea utilizar un valor incluido en una ubicación del mensaje, establezca el atributo p:localTransactionId/@p:sourceOfId en query y, a continuación, complete el atributo p:localTransactionId/@p:queryText especificando una consulta XPath. Asegúrese de que la ubicación especificada contiene un valor de correlacionador exclusivo para esta invocación del flujo de mensajes. El valor se guarda en el árbol de entorno.
    2. Opcional: Complete the p:parentTransactionId element.
      • Si desea volver a utilizar el correlacionador padre del árbol de entorno, establezca el atributo p:parentTransactionId/@p:sourceOfId en automatic. Si aún no existe ningún correlacionador padre, no se utilizará ningún correlacionador padre.
      • Si desea utilizar un valor incluida en una ubicación del mensaje, establezca el atributo p:parentTransactionId/@p:sourceOfId en query y, a continuación, complete el atributo p:parentTransactionId/@p:queryText especificando una consulta XPath. Asegúrese de que la ubicación especificada contiene un valor adecuado para el correlacionador padre. El valor se guarda en el árbol de entorno.
    3. Opcional: rellene el elemento p:globalTransactionId.
      • Si desea volver a utilizar un correlacionador global del árbol de entorno, establezca el atributo p:globalTransactionId/@p:sourceOfId en automatic. Si aún no existe ningún correlacionador global, no se utilizará ningún correlacionador global.
      • Si desea utilizar un valor incluido en una ubicación del mensaje, establezca el atributo p:globalTransactionId/@p:sourceOfId en query y, a continuación, complete el atributo p:globalTransactionId/@p:queryText especificando una consulta XPath. Asegúrese de que la ubicación especificada contiene un valor adecuado para el correlacionador global. El valor se guarda en el árbol de entorno.
  7. Complete el elemento p:eventPointDataQuery/p:eventUOW. De este modo se determina si la emisión de los sucesos de supervisión mediante un flujo de mensajes se coordina con la transacción de flujo de mensajes o si se encuentra en una unidad de trabajo independiente, o si no está en ninguna unidad de trabajo.
    Establezca el atributo p:eventUOW/@p:unitOfWork en uno de los valores siguientes:
    messageFlow
    El suceso, y todos los demás sucesos con este valor, se emiten solamente si el flujo de mensajes confirma su unidad de trabajo de forma satisfactoria.

    Si se especifica que debe incluirse el suceso de inicio de transacción en la unidad de trabajo del flujo de mensajes, pero falla el proceso de mensajes y no se publica esta unidad de trabajo, el suceso de inicio de transacción se incluirá en una unidad de trabajo independiente. De este modo se garantiza que la aplicación de supervisión recibe un par de sucesos (inicio y retrotracción) en lugar de recibir un suceso de retrotracción aislado.

    independent
    El suceso se emite en una segunda unidad de trabajo, independientemente de la unidad de trabajo principal. El suceso, y todos los demás sucesos con este valor, se emiten tanto si la unidad de trabajo principal se confirma de forma satisfactoria como si no.

    Se puede iniciar una transacción independiente solamente si se ha confirmado o retrotraído la transacción principal. Si la propiedad Cuenta de confirmaciones del flujo es mayor que uno, (Propiedades configurables del flujo de mensajes) o si la propiedad Confirmar por grupo de mensajes se ha establecido (Recepción de mensajes en un grupo de mensajes WebSphere MQ), los sucesos de destino para la transacción independiente se emiten en su lugar fuera del punto de sincronismo y se emite un mensaje indicando que la acción se ha realizado.

    none
    El suceso se emite fuera del punto de sincronismo (no en una unidad de trabajo). El suceso se emite cuando el mensaje pasa a través del origen de sucesos y está disponible para la lectura inmediatamente.
    No todas estas opciones están disponibles en todos los tipos de sucesos. En la tabla siguiente aparecen los valores permitidos:
    Tipo de suceso Valores permitidos
    transaction.Start
    • messageFlow
    • independent
    • none
    transaction.End
    • messageFlow
    • none
    transaction.Rollback
    • independent
    • none
    terminal
    • messageFlow
    • independent
    • none
    Si no incluye el elemento eventUOW para un origen de sucesos, la transaccionalidad de todos los sucesos emitidos desde ese origen se establecerá en messageFlow. La transaccionalidad para sucesos transaction.rollback toma como valor predeterminado independiente.

Consultas XPath y espacios de nombres XML

Si una consulta XPath contiene un componente que tiene un espacio de nombres XML, XPath contiene un prefijo de espacio de nombres para el espacio de nombres. Por ejemplo, el siguiente XPath hace referencia a los componentes de dos espacios de nombres distintos:

<p:localTransactionId p:sourceOfId="query" p:queryText="$Body/soapenv:Header/wsa:messageID" />

Para que el intermediario resuelva el prefijo de espacio de nombres, también se debe proporcionar el URL de espacio de nombres. Proporcione un elemento de correlación de prefijos para cada espacio de nombres:

      <p:localTransactionId p:sourceOfId="query" p:queryText="$Body/soapenv:Header/wsa:messageID">
        <p:prefixMapping p:prefix="soapenv" p:URI="http://www.w3.org/2003/05/soap-envelope" />
        <p:prefixMapping p:prefix="wsa" p:URI="http://www.w3.org/2005/08/addressing" />
      </p:localTransactionId>

Ejemplos de perfiles de supervisión

Los siguientes documentos XML se ajustan al esquema de perfiles de supervisión

Perfil de supervisión 1: dos orígenes de sucesos y cada uno proporciona un nombre de suceso

<p:monitoringProfile p:version="2.0">
 <p:eventSource p:eventSourceAddress="SOAPInput.transaction.Start">
  <p:eventPointDataQuery>
    <p:eventIdentity>
      <p:eventName p:literal="SOAP start event"/>
    </p:eventIdentity>
  </p:eventPointDataQuery>
 </p:eventSource>
 <p:eventSource p:eventSourceAddress="SOAPInput.transaction.End">
  <p:eventPointDataQuery>
    <p:eventIdentity>
      <p:eventName p:literal="SOAP end event"/>
    </p:eventIdentity>
  </p:eventPointDataQuery>
 </p:eventSource>
</p:monitoringProfile>
Perfil de supervisión 2: suministrar un correlacionador local alternativo
<p:monitoringProfile p:version="2.0">
 <p:eventSource p:eventSourceAddress="SOAPInput.transaction.Start">
  <p:eventPointDataQuery>
    <p:eventCorrelation>
      <p:localTransactionId p:queryText="$Body/soapenv:Header/wsa:messageID" p:sourceOfId="query">
        <p:prefixMapping p:prefix="soapenv" p:URI="http://www.w3.org/2003/05/soap-envelope"/>
        <p:prefixMapping p:prefix="wsa" p:URI="http://www.w3.org/2005/08/addressing"/>
      </p:localTransactionId>
    </p:eventCorrelation>
  </p:eventPointDataQuery>
 </p:eventSource>
</p:monitoringProfile>
Perfil de supervisión 3: incluir dos campos simples del mensaje
<p:monitoringProfile p:version="2.0">
 <p:eventSource p:eventSourceAddress="MQInput.terminal.out">
  <p:applicationDataQuery>
    <p:simpleContent p:dataType="integer" p:name="InvoiceNumber">
      <p:valueQuery p:queryText="$Body/invoice/invoiceNo"/>
    </p:simpleContent>
    <p:simpleContent p:dataType="string" p:name="BatchID">
      <p:valueQuery p:queryText="$Body/batch/batchNo"/>
    </p:simpleContent>
  </p:applicationDataQuery>
 </p:eventSource>
</p:monitoringProfile>
Perfil de supervisión 4: incluir la corriente de bits codificada como CDATA
El valor predeterminado es codificar las corrientes de bits en formato base64Binary. El siguiente perfil de supervisión cambia la codificación a CDATA.
<p:monitoringProfile p:version="2.0">
 <p:eventSource p:eventSourceAddress="MQInput.terminal.out">
    <p:bitstreamDataQuery p:bitstreamContent="body" p:encoding="CDATA"/>
 </p:eventSource>
</p:monitoringProfile>
La codificación CDATA no es adecuada para todos los tipos de datos. Utilice CDATA sólo cuando @p:bitstreamContent="body". No utilice CDATA si es posible que las corrientes de bits del mensaje contengan caracteres no permitidos en XML (consulte http://www.w3.org/TR/2006/REC-xml-20060816/#charsets).
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 16:58:43


Tema de referenciaTema de referencia | Versión 8.0.0.5 | ac37900_