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

Validar mensajes

El intermediario permite la validación basándose en el modelo de mensajes para mensajes predefinidos.

Antes de empezar:

Lea los temas de concepto sobre flujos de mensajes y analizadores; especialmente Analizador y dominio DFDL y Analizador XMLNSC.

La validación sólo se aplica a los mensajes que haya modelado y desplegado en el intermediario. Específicamente, los dominios de mensajes que dan soporte a la validación son DFDL, MRM, XMLNSC, SOAP e IDOC.

El intermediario no proporciona ninguna validación para los mensajes autodefinidos. Los dominios DFDL,XMLNSC y SOAP validan los mensajes predefinidos directamente con los archivos de esquema de modelo de mensaje. Los analizadores MRM e IDOC validan mensajes predefinidos con el diccionario de mensajes generado a partir de un conjunto de mensajes.

Los flujos de mensajes están diseñados para transformar y direccionar los mensajes que cumplen ciertas normas. De forma predeterminada, los analizadores realizan alguna comprobación de validez en un mensaje, pero sólo para garantizar la integridad de la operación de análisis. Sin embargo, puede validar un mensaje de forma más rigurosa contra el modelo de mensaje contenido en el conjunto de mensajes, especificando opciones de validación en ciertos nodos en el flujo de mensajes.

Puede utilizar las opciones de validación para validar los siguientes mensajes:
  • Mensajes de entrada recibidos por un nodo de entrada
  • Mensajes de salida creados, por ejemplo, mediante un nodo Compute, Mapping o JavaCompute
Estas opciones de validación pueden garantizar la validez de los datos que entran y salen del flujo de mensajes. Las opciones le proporcionan cierto control sobre la validación que se realiza para:
  • Mantener un equilibrio entre los requisitos de rendimiento y los de seguridad.
  • Validar en etapas diferentes de la finalización del flujo de mensajes; por ejemplo en la entrada de un mensaje o antes de propagar un mensaje o en cualquier punto intermedio.
  • Manejar los mensajes que el modelo de mensaje no describe completamente.

También puede especificar qué acción se debe realizar cuando falla la validación.

La validación de mensajes implica navegar por un árbol de mensajes y comprobar la validez del árbol. La validación de mensajes es una extensión de la creación de un árbol cuando se analiza el mensaje de entrada y de la creación de una corriente de bits cuando se graba el mensaje de salida.

Las opciones de validación están disponibles en los nodos siguientes:
Tipo de nodo Nodos con opciones de validación
Nodo de entrada FileInput, FTEInput, HTTPInput, JMSInput, MQInput, SCAInput, SOAPInput,TCPIPClientInput, TCPIPClientReceive, TCPIPServerInput, TCPIPServerReceiveTimeoutNotification
Nodo de salida EmailOutput, FileOutput, FTEOutput, HTTPReply, JMSOutput, JMSReply, MQOutput, MQReply, SCAReply, SOAPReply, TCPIPClientOutput, TCPIPServerOutput
Otros nodos Compute, CICSRequest, DatabaseRetrieve, HTTPRequest, FileRead, JavaCompute, Mapping, MQGet, PHPCompute, ResetContentDescriptor, SCAAsyncResponse, SCARequest, SOAPRequest, SOAPAsyncResponse, Validate, XSLTransform

También se pueden especificar opciones de validación en la sentencia ESQL CREATE y la función ASBITSTREAM.

Para validar los mensajes de entrada que se reciben en un nodo de entrada, puede especificar propiedades de validación en el nodo de entrada. A continuación, el mensaje de entrada se valida cuando se analiza la corriente de bits de mensaje para formar el árbol de mensaje.

También puede utilizar la propiedad de Temporización de análisis del nodo de entrada para controlar si se debe analizar y validar el mensaje entero en este momento o si sólo se deben analizar y validar campos individuales cuando se haga referencia a ellos.

Para validar los mensajes de salida creados por un nodo de transformación, especifique propiedades de validación en el nodo propiamente dicho o en el nodo de salida que envía el mensaje. La validación tiene lugar cuando el nodo de salida crea la corriente de bits de mensaje desde el árbol de mensaje.

De forma alternativa, utilice un nodo Validate para validar un árbol de mensaje en un lugar específico del flujo de mensajes o utilice la función ESQL ASBITSTREAM de un nodo Compute, Filter o Database.

Por omisión se produce una cantidad limitada de validación si no modifica los valores de validación. En este nivel predeterminado, se genera una excepción si es cierta una de las condiciones siguientes:
  • Hay discrepancia de datos; por ejemplo, el analizador no puede interpretar los datos proporcionados para el tipo de campo especificado.
  • El orden de los elementos en el mensaje de salida no coincide con el orden de los elementos en el árbol de mensajes lógico (sólo modelos de longitud fija DFDL, MRM, CWF y MRM TDS).
Adicionalmente, el analizador DFDL realiza una acción de remedio limitada bajo las circunstancias siguientes:
  • Si falta contenido necesario, se proporcionan valores predeterminados, si están disponibles en el esquema, o en la salida.
  • Si el tipo de datos de un elemento del árbol es CHARACTER y no coincide con el especificado en el esquema, el tipo de datos se convierte en la salida para que coincida con el esquema, si es posible.
Adicionalmente, el analizador MRM realiza una acción de remedio limitada bajo las circunstancias siguientes:
  • Se descartan los campos externos en la salida para los formatos fijos (sólo modelos de longitud fija CWF y TDS).
  • Si falta contenido necesario, se proporcionan valores predeterminados, si están disponibles, en la salida para formatos fijos (sólo modelos de longitud fija CWF y TDS).
  • Si el tipo de datos de un elemento del árbol no coincide con el especificado en el diccionario, el tipo de datos se convierte en la salida para que coincida con la definición de diccionario, si es posible, para todos los formatos.
Sin embargo, si utiliza opciones de validación puede solicitar una validación más completa de los mensajes. Por ejemplo, quizá desee validar una o más de las siguientes condiciones y generar una excepción o anotar los errores:
  • El mensaje completo al inicio del flujo de mensajes
  • Que los elementos complejos tengan la Composición y la Validación de contenido correctas
  • Que todos los campos de datos contengan el tipo correcto de datos
  • Que los campos de datos satisfagan las limitaciones de valor en el modelo de mensaje
  • Que todos los campos obligatorios estén presentes en el mensaje
  • Que sólo los campos esperados estén presentes en el mensaje
  • Que los elementos del mensaje estén en el orden correcto

Los ejemplos ilustran algunas de estas opciones de validación.

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.

Cuando se utilizan opciones de validación es importante comprender el siguiente comportamiento.
  • La propiedad Temporización de análisis, que controla si tiene lugar el análisis a solicitud (a veces conocido como análisis parcial), produce un efecto en la temporización de la validación de los mensajes de entrada, incluidas las cabeceras de mensaje.

    Para obtener más información sobre la propiedad Temporización de análisis, consulte Análisis a petición.

  • Si se pasa un árbol de mensajes a un nodo de salida, de forma predeterminada, el nodo de salida hereda las opciones de validación en vigor para el árbol de mensajes. Puede alterar temporalmente estas opciones especificando un nuevo conjunto de opciones de validación en el nodo de salida.
  • Si se pasa un árbol de mensajes como entrada a un nodo Compute, Mapping, XSLTransform, DatabaseRetrieve o JavaCompute, cualquier nuevo árbol de mensajes de entrada que crea el nodo tendrá las opciones de validación especificadas por el nodo propiamente dicho (incluso si se copia el mensaje completo). Puede alterar temporalmente este comportamiento y especificar que los mensajes creados por el nodo hereden las opciones de validación del árbol de mensajes de entrada.
  • (Sólo los dominios DFDL y MRM) Cuando se graba la corriente de bits y se aplican las opciones de validación, se valida el mensaje entero. El árbol de mensajes puede contener un tipo sin resolver (por ejemplo, si un nodo Compute ha copiado un tipo sin resolver de un mensaje de entrada en un mensaje de salida, sin resolverlo). Si se encuentra un tipo así, se produce un error de validación porque no es posible validar el tipo. Para evitar este error, asegúrese de que se resuelvan todos los tipos sin resolver antes de ser copiados a los mensajes de salida.
  • (Sólo dominio MRM) No marque el recuadro Truncar series de longitud fija porque la validación se realiza antes que el recorte y un campo de longitud fija no puede validarse si su longitud supera la longitud definida en el conjunto de mensajes. Para obtener más información sobre la propiedad Truncar series de longitud fija, consulte Conjuntos de mensajes: propiedades de conjunto de mensajes de formato físico personalizado y Conjuntos de mensajes: propiedades del conjunto de mensajes de formato TDS.

Para obtener información sobre cómo se puede controlar la validación utilizando propiedades diferentes, consulte el apartado Propiedades de validación.

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:14


Tema de tareaTema de tarea | Versión 8.0.0.5 | ac00400_