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.
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>
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.
En los siguientes pasos se describe cómo crear un XML de perfil de supervisión. Siga estos pasos para cada elemento p:eventSource.
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> |
En el suceso emitido, la serie de dirección de origen de suceso se establece en el atributo wmb:eventData/@wmb:eventSourceAddress.
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.
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.
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.
En el suceso emitido, los datos de corriente de bits emitidos se establecen en el elemento wmb:bitstreamData/wmb:bitstream.
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.
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.
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.
Tipo de suceso | Valores permitidos |
---|---|
transaction.Start |
|
transaction.End |
|
transaction.Rollback |
|
terminal |
|
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>
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>
<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>
<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>
<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).