Resolución de problemas al desarrollar modelos de mensajes

Este tema contiene consejos para solucionar algunos problemas comunes que pueden surgir al trabajar con conjuntos de mensajes.

Acerca de esta tarea

Archivos de definición de mensajes:
Otros:

Su archivo de definición de mensajes no se abre

Procedimiento

  • Escenario: Ha creado un tipo complejo con un tipo base que hace que los tipos sean recursivos y ahora el archivo de definición de mensajes no se abre.
  • Solución: Recuperar la última versión guardada del archivo de definición de mensajes del historial local o del repositorio.

En la lista de tareas se graba un error de archivo de definición de mensajes

Procedimiento

  • Escenario: Se graba un error en la lista de tareas que indica que el archivo de definición de mensajes se ha dañado.
  • Explicación: Este mensaje de error aparece cuando el tipo base del tipo complejo es en sí mismo, o una definición circular de dos o más tipos simples. Este tipo de recurrencia no está soportado.
  • Solución: Examine el código y asegúrese de que el tipo de recurrencia descrito anteriormente no se produce.

Los valores de las propiedades de formato físico han vuelto a los valores predeterminados

Procedimiento

  • Escenario: Alguien le ha enviado un archivo de definición de mensajes. Lo ha añadido a un proyecto de conjunto de mensajes, pero todos los valores de las propiedades de formato físico han vuelto a los valores predeterminados.
  • Explicación: No puede transferir archivos de definición de mensajes por su cuenta de este modo porque estos archivos no son del todo independientes.
    El archivo messageSet.mset es el que lista todos los formatos físicos que son aplicables a un conjunto de mensajes.
    Por ejemplo, si tiene un conjunto de mensajes A con un formato CWF Binary1, y un conjunto de mensajes B sin ningún formato físico, un archivo de definición de mensajes que se copie de A a B no muestra Binary1 como un formato físico conocido (aunque las propiedades siguen estando en el archivo de definición de mensajes).
  • Solución: Si es posible, solicite todo el proyecto de conjunto de mensajes.

    Alternativamente, añada formatos físicos al conjunto de mensajes que se recibe de modo que coincidan con los del conjunto de mensajes original. De este modo, todas las propiedades inactivas serán visibles. No obstante, asegúrese de que las propiedades de formato físico a nivel de conjunto de mensajes coincidan, o las propiedades de objeto que heredan valores predeterminados del nivel de conjunto de mensajes serán incorrectas.

No puede entrar texto en los editores de definiciones de mensajes

Procedimiento

  • Escenario: No puede especificar texto en el editor Visión general de definición de mensajes o cambiar el texto de una faceta de enumeración o patrón en el Editor de propiedades de definición de mensajes.
  • Solución: Los editores de definición de mensajes son editores de célula y para habilitarlos tiene que hacer doble clic en la celda.
    la primera pulsación selecciona la celda; la segunda pulsación pone la celda en estado activo, lo cual le permite editarla.

Los objetos en su archivo de definición de mensajes no están en orden alfabético

Procedimiento

  • Escenario: Los objetos del archivo de definición de mensajes (.mxsd) se listan en el orden en el que los ha creado, pero desea que estén en orden alfabético.
  • Solución:
    1. En Perspectiva Desarrollo de integración, efectúe una doble pulsación en el archivo de definición de mensajes para abrirlo en la vista Esquema.
    2. Pulse az (en la parte superior de la vista Esquema).
    Esta acción hace que el orden de los objetos dentro de cada una de las carpetas del archivo de definición de mensajes (las carpetas Mensajes, Tipos, Grupos, Elementos y Atributos) cambie a alfabético.

Se graban mensajes de error en la lista de tareas después de que haya importado archivos de esquema XML relacionados

Procedimiento

  • Escenario: Cuando haya terminado de importar una colección de archivos de esquema XML relacionados, encontrará que la lista de tareas de IBM® Integration Toolkit contiene mensajes de error para el proyecto de conjunto de mensajes, indicando que no se pueden encontrar los tipos referenciados u otros objetos.
  • Explicación: Estos errores suelen ser una indicación de que un archivo de definición de mensajes incluye o importa otro archivo de definición de mensajes, pero que el editor de definiciones de mensajes no puede resolver el enlace especificado.
  • Solución:
    • Compruebe que exista un archivo de definición de mensajes en IBM Integration Toolkit para cada uno de los archivos de esquema XML relacionados que está importando. Si se han creado los nuevos archivos de definición de mensajes, aparecen en Vista Desarrollo de aplicaciones.
    • Utilizando la Jerarquía de propiedades del Editor de definiciones de mensajes, compruebe que todos los archivos de definición de mensajes que incluyan o importen otros archivos de definición de mensajes estén localizando correctamente los archivos de destino.

    Un caso común es cuando tiene dos archivos de esquema XML, X e Y, que existen ambos en el mismo directorio del sistema de archivos pero en el que X, que incluye a Y, está definido en un espacio de nombres de destino real, mientras que Y está definido en el espacio de nombres no de destino. Después de importar los dos archivos, X se coloca en la ubicación que determina su espacio de nombres, pero Y se coloca en la ubicación de espacio de nombres predeterminada utilizada para los archivos definidos en el espacio de nombres no de destino. Esta situación hace que el enlace entre los dos archivos se rompa, y debe modificar X para que incluya correctamente a Y en su nueva ubicación relativa.

Un grupo contiene dos elementos diferentes con el mismo nombre XML en el mismo espacio de nombres

Procedimiento

  • Escenario: Se graba un aviso en la lista de tareas porque un grupo contiene dos elementos diferentes que tienen el mismo nombre de elemento XML, en el mismo espacio de nombres.
  • Explicación: Cuando se valida un mensaje que tiene un formato físico XML, la validación incluye una prueba para identificar cualquier parte de una definición de mensaje en la que el analizador no pueda determinar de forma exclusiva qué elemento está representado por el nombre XML.
    Esta prueba genera un aviso cuando un grupo contiene dos elementos XML diferentes con el mismo nombre de elemento en el mismo espacio de nombres, incluso en los casos en los que la duplicación sea válida.
  • Solución: Determinar si la duplicación identificada en el mensaje de aviso es, de hecho, un problema que debe corregirse, o si ha surgido debido a dos elementos en los lados opuestos de una opción que comparte el mismo nombre XML, en cuyo caso la duplicación es legítima porque no se puede producir ninguna ambigüedad.

No puede configurar un archivo de definición de mensajes para incluir un archivo de definición de mensajes dentro de otro

Procedimiento

  • Escenario: No puede configurar la propiedad de inclusión de un archivo de definición de mensajes para incluir un segundo archivo de definición de mensajes que se incluye en otro archivo de definición de mensajes.
  • Explicación: Un archivo de definición de mensajes puede hacer referencia a objetos de otro archivo de definición de mensajes sólo si el primer archivo hace referencia directamente al segundo archivo.
    Por ejemplo, si hay tres archivos de definición de mensajes, A, B y C, donde A incluye a B y B incluye a C, entonces A puede hacer referencia a objetos de B y B puede hacer referencia a objetos de C, pero A no puede hacer referencia a objetos de C.

    También puede encontrarse con este problema después de importar archivos de esquema XML que tengan inclusiones anidadas.

  • Solución: Puede solucionar este problema incluyendo directamente el archivo de definición de mensajes, lo que, en el ejemplo anterior, significaría incluir C directamente en A.
    De forma alternativa, puede definir todas las definiciones de conjunto de mensajes que hay en C directamente en B, y luego suprimir C para que A sólo necesite incluir a B.

Quiere que el separador Propiedades sea el separador predeterminado en el Editor de definiciones de mensajes

Procedimiento

  • Hipótesis: Al utilizar el editor de definiciones de mensajes para editar los archivos de definición de mensajes, prefiere utilizar la pestaña Propiedades en lugar de la pestaña Visión general , pero la pestaña Visión general siempre se selecciona como el valor predeterminado.
  • Solución: Utilice las preferencias de IBM Integration Toolkit para elegir la pestaña Propiedades como la pestaña predeterminada:
    1. En el menú, pulse Windows > Preferencias.
    2. Expanda Desarrollo de integración, luego Conjunto de mensajes.
    3. Expanda Editores y seleccione Extensiones de pestaña.
    4. En la sección Editor de definiciones de mensajes , seleccione los recuadros de selección Propiedades y Visión general .
    5. Haga clic en OK.

Se emite el mensaje de error BIP5410 debido a que no se puede resolver un tipo de unión

Procedimiento

  • Escenario: Se genera el mensaje de error BIP5410 que indica que un elemento o atributo se basa en un tipo de unión y que el elemento o atributo no se ha podido convertir en ningún miembro de la unión.
  • Explicación: Al analizar un elemento o atributo basado en un tipo de unión, el analizador MRM XML utiliza un atributo xsi: type, donde está presente, para resolver la unión.

    Si no hay ningún atributo xsi:type, o se está analizando un atributo, el analizador prueba cada tipo de miembro de unión, intentando transformar al tipo simple asociado, hasta que la transformación es satisfactoria. El orden de prioridad de la transformación que se intenta es el orden en que se listan los tipos de miembros en el modelo de mensaje, bajo el tipo de unión, en la vista Esquema.

    Si los datos no se pueden transformar a ninguno de los tipos simples dentro de la unión, la unión no se puede resolver y se genera un error de analizador.

  • Solución: Realice las comprobaciones siguientes:
    • Compruebe que el mensaje contiene un valor válido para el elemento o atributo identificado en el mensaje de error.
    • Compruebe que los tipos de miembro de la unión que se identifican en el mensaje de error contienen la lista correcta de los tipos simples.
    • Si es posible, utilice un atributo xsi:type para resolver la unión de forma explícita.

Se emite el mensaje de error BIP5395 debido a que un valor de atributo xsi:type no corresponde a un tipo de miembro válido de la unión

Procedimiento

  • Escenario: Se emite el mensaje de error BIP5395 , que indica que un elemento se basa en un tipo de unión que tiene un atributo xsi: type con un valor que debe resolver la unión explícitamente a uno de sus tipos de miembro modelados y que el valor de atributo xsi: type no corresponde a un tipo de miembro válido de la unión.
  • Explicación: Al analizar o escribir un elemento o atributo basado en un tipo de unión, el analizador o transcriptor XML MRM utiliza un atributo xsi: type, donde está presente, para resolver la unión.
    El analizador resuelve el valor del atributo xsi:type en un tipo simple en el diccionario y comprueba que el tipo simple sea un tipo de miembro válido de la unión.

    Si el atributo xsi:type identifica un tipo que no es un tipo de miembro de la unión, se genera un error.

  • Solución: Realice uno de los pasos siguientes:
    • Modifique el mensaje de forma que el atributo xsi:type identifique un tipo de miembro válido de la unión.
    • Compruebe que los tipos de miembro de la unión identificados en el mensaje de error contienen la lista correcta de los tipos simples.

Se emite el mensaje de error BIP5396 debido a que un tipo de datos no corresponde a ninguno de los tipos de datos válidos de la unión

Procedimiento

  • Escenario: Se emite el mensaje de error BIP5396 , que indica que un elemento o atributo se basa en un tipo de unión pero el tipo de datos no corresponde a ninguno de los tipos de datos válidos en la unión.
  • Explicación: Al escribir un elemento o atributo que se basa en un tipo de unión, el transcriptor XML MRM utiliza un atributo xsi: type, donde está presente, para resolver la unión.
    Si no hay ningún atributo xsi:type, el grabador intenta hacer coincidir el tipo de datos del valor literal del árbol con un tipo simple de la unión. Si no logra hacerlo coincidir, emite un error de grabación.
  • Solución: Realice uno de los pasos siguientes:
    • Compruebe que el mensaje o ESQL contiene un valor válido para el elemento o atributo.
    • Compruebe que el tipo de unión en el que se basa el elemento contiene la lista correcta de tipos simples.
    • Considere el uso de un atributo xsi:type para resolver la unión de forma explícita.
    • Considere cambiar el tipo de elemento en el árbol para que se corresponda con uno de los tipos de miembro de la unión.

Un tipo de unión contiene dos o más tipos simples que se derivan del mismo tipo fundamental

Procedimiento

  • Escenario: Se emite un aviso durante la validación lógica que indica que un tipo de unión contiene dos o más tipos simples que se derivan del mismo tipo fundamental.
  • Explicación: El nodo de integración no aplica restricciones de valor hasta que los datos están en el árbol lógico. Por tanto, no es posible elegir entre dos tipos simples que se derivan del mismo tipo fundamental, pero con limitaciones diferentes. Por ejemplo, el nodo de integración no puede diferenciar entre un tipo de miembro de entero con un rango de 1-10 y otro tipo de miembro de entero con un rango de 11-20, de forma que la unión se resolverá con el primer tipo de miembro de entero.
  • Solución: Asegúrese de que el tipo de unión identificado en el aviso no contenga más de un tipo simple derivado del mismo tipo fundamental o asegúrese de que el orden de dichos tipos de miembros sea el deseado.

Un tipo de lista se basa en una unión que también contiene un tipo de lista

Procedimiento

  • Escenario: Se emite un mensaje de error durante la validación lógica, lo que indica que un tipo de lista se basa en un tipo de unión que incluye un tipo de lista como uno de sus tipos de miembro.
  • Explicación: Las listas de listas no son legales. El tipo de elemento de un tipo de lista no puede ser otro tipo de lista, ni tampoco puede derivarse a ningún nivel de otro tipo de lista. Por tanto, un tipo de lista no puede tener un tipo de elemento de un tipo de unión que incluya un tipo de lista como uno de sus tipos de miembro.
  • Solución: Asegúrese de que cualquier tipo de unión especificado como tipo de elemento para un tipo de lista no incluya un tipo de lista como uno de sus tipos de miembro.

Un tipo de unión contiene una faceta de enumeración o patrón

Procedimiento

  • Escenario: Se genera un mensaje de error durante la validación lógica, lo que indica que un tipo de unión contiene una faceta de enumeración o patrón que no está soportada porque las facetas de enumeración y patrón deben especificarse directamente en el tipo de miembro.
  • Explicación: El nodo de integración no puede soportar las facetas de tipo de unión de patrón y enumeración aplicadas directamente a una restricción de un tipo de unión. Sólo puede dar soporte a facetas directamente en el tipo de miembro elegido. El Editor de definiciones de mensajes proporciona soporte para estas facetas para permitir la importación de esquemas utilizando facetas directas en una restricción de un tipo de unión, pero emite un aviso indicando que el nodo de integración las ignorará.
  • Solución: Si desea utilizar las facetas de enumeración o patrón, especifíquelos directamente en el tipo de miembro y no en el propio tipo de unión.

Se envía el mensaje de error BIP5505 porque los datos de entrada no son válidos para el tipo de datos

Procedimiento

  • Escenario: Una conversión de datos falla mientras se lee o escribe un mensaje. Se envía el mensaje de error BIP5505, indicando que los datos de entrada no eran válidos para el tipo de datos.
  • Solución:
    Lleve a cabo la siguiente comprobación:
    • Asegúrese de que la corriente de bits esté correctamente alineada con el modelo. Si el mensaje entrante no es coherente con el modelo, se asignan bytes erróneos en los campos y los datos que aparecen en el campo probablemente no contengan datos válidos para el tipo lógico.
    • Asegúrese de aplicar la codificación y CodedCharSetId correctos al cuerpo del mensaje de entrada. Si se utiliza una codificación incorrecta, la corriente de datos del mensaje de entrada queda sujeta al intercambios de bytes y modifica el orden de los bytes. Este cambio puede afectar a la naturaleza de los datos que se aplican a un campo y dejarlo inutilizable.
    • Asegúrese de que se aplica un formato WebSphere® MQ adecuado al cuerpo del mensaje de entrada. Por ejemplo, si se aplica MQSTR a una corriente de bits que contiene datos numéricos, para convertir los bytes se utilizarán conversiones de caracteres en lugar de codificaciones. Este uso puede cambiar el significado de los bytes e invalidarlos para el tipo de datos lógico. Si se utilizan conversiones de caracteres con decimales externos negativos, piense en la posibilidad de utilizar la opción EBCDIC personalizado.
    • Si el error está en un campo numérico, asegúrese de que los datos de entrada sean compatibles con los valores del formato físico. Por ejemplo, si el campo es con signo, asegúrese de que se haya especificado un byte con signo válido, que corresponda con la orientación del signo y que se haya incluido o excluido adecuadamente.
    • Si el mensaje de entrada no resulta compatible con las definiciones de mensajes MRM, compruebe la fuente del mensaje. Si se envía a través de canales, compruebe que los valores de conversión de los canales sean correctos.

Se emite un error de elemento obsoleto en un archivo .mrp importado

Procedimiento

  • Escenario: Ha importado un archivo .mrp y recibe un mensaje de error que indica que los elementos complejos o los tipos simples incorporados están en desuso.
  • Los elementos complejos de Explicación: y los tipos simples incorporados no tienen un equivalente exacto en el esquema XML. El equivalente más cercano a un tipo complejo en el esquema XML es obtener un tipo complejo a partir de un tipo simple. No obstante, a este tipo no se le permite contener elementos; sólo se permiten atributos.
  • Solución: Si el tipo complejo contiene elementos que no se pueden modelar como atributos, establezca el distintivo Contenido mixto en el tipo complejo. Si necesita analizar mensajes que tienen un contenido mixto, establezca el indicador Contenido mixto en el tipo complejo padre. Los datos anónimos que solía modelar el tipo complejo o el tipo simple incorporado aparecen entonces como un nodo autodefinido en el árbol de mensajes analizado.

El rastreo de usuario detecta un error de longitud de elemento

Procedimiento

  • Escenario: Ha definido un mensaje MRM y cuando ejecuta el flujo de mensajes, se graba un mensaje de error en el rastreo de usuario que indica que la longitud de un elemento no es válida.
  • Explicación: Ha añadido un elemento de tipo serie al tipo complejo que compone el mensaje, pero no ha definido la longitud de la serie en la instancia del elemento en su tipo.
  • Solución:
    1. Abra el archivo de definición de mensajes en el Editor de definiciones de mensajes.
    2. En la vista Esquema, expanda el tipo complejo adecuado y, a continuación, pulse el elemento para visualizar sus propiedades en el área del editor.
    3. En la Jerarquía de propiedades, asegúrese de que el elemento esté seleccionado dentro del formato físico CWF en Propiedades físicas.
    4. Especifique las propiedades que tendrá este elemento cuando forme parte del tipo complejo; por ejemplo, en el caso anterior, asegúrese de que se ha establecido el valor Cuenta de longitud .
    5. Guarde los cambios realizados en el Editor de definiciones de mensajes y despliegue de nuevo el mensaje.

El valor de fecha y hora de MRM ha cambiado después de que se haya analizado

Procedimiento

  • Escenario: Ha definido un elemento de fecha y hora MRM pero el valor creado en el árbol de mensajes es distinto del valor que ha definido.
  • Explicación: El analizador utiliza la comprobación de fecha y hora lenient, convirtiendo los valores de datos fuera de banda en el valor en banda apropiado.
  • Solución: Consulte la información sobre la comprobación de fecha y hora en Conjuntos de mensajes: DateTime como datos de serie con una referencia concreta a cómo se representan los años y los segundos fraccionarios.