Notas sobre migración de conjunto de mensajes

Este tema explica lo que debe hacer con cada archivo de definición de mensajes durante la migración.

Debe estar al corriente de la siguiente información sobre cada archivo de definición de mensajes cuando utiliza el Mandato mqsimigratemsgsets.

Notas para el usuario

Se recomienda encarecidamente que no modifique el archivo de conjunto de mensajes manualmente entre la exportación de la versión 2.1 y la importación a la versión 5.0 de WebSphere Business Integration Message Broker puesto que los resultados no están garantizados. Esto puede indicarse por la presencia de los siguientes mensajes de aviso y de error en el informe (BIP0141, BIP0142 hasta BIP0157, BIP0163)

Cada archivo de definición de mensajes .mxsd es un modelo de esquema anotado y cada artefacto se crea de nuevo en el conjunto de mensajes y conserva sus propiedades existentes en este nuevo modelo, con las siguientes excepciones:
  • El Nombre en el modelo de la versión 5.0 de WebSphere Business Integration Message Broker es el Identificador del modelo de la versión 2.1. Observe que si el objeto es un elemento con un identificador con prefijo se elimina el prefijo, puesto que el prefijo en la versión 2.1 era una manera de indicar que este elemento no era local.
  • Etiqueta Breve, Descripción larga e Historial se fusionan en una sola propiedad Documentación para la versión 5.0 de WebSphere Business Integration Message Broker.
  • Cada tipo compuesto se convierte en xsd:complexType y xsd:group en la versión 5.0 de WebSphere Business Integration Message Broker.
    xsd:complexType creado de esta manera, puede ser local o global. El valor por omisión es local, pero se altera temporalmente para ser global si se cumple una de las siguientes condiciones:
    1. El tipo compuesto no tiene referencia
    2. El tipo compuestotiene un tipo base MRM de la versión 2.1.
    3. Más de un elemento hacer referencia al tipo compuesto.
    4. Un mensaje se basa en el tipo compuesto
    5. Se especifica el parámetro -g
    xsd:group creado de esta manera, puede ser local o global. El valor por omisión es local, pero se altera temporalmente para ser global si se cumple una de los siguientes condiciones:
    1. El tipo compuesto se intercala directamente en otro tipo compuesto. Para obtener más información, consulte la sección Tipo simple intercalado.
    2. El tipo compuesto tiene el tipo base MRM de la versión 2.1. Para obtener más información, consulte la sección Tipo compuesto con un tipo base MRM.
    3. El tipo compuesto tiene una composición de tipo de la versión 2.1 de 'simpleUnorderedSet' y un contenido de tipo de la versión 2.1 'closed'

    Observe que la composición de tipo de 'simpleUnorderedSet' se ha desactivado del modelo en la versión 5.0 de WebSphere Business Integration Message Broker. Si el contenido del tipo está cerrado 'closed', entonces se sustituye por 'all' con un mensaje de aviso BIP0191; de lo contrario, se sustituye por 'unorderedSet' con un mensaje de aviso BIP0192.

    La composición del tipo 'empty' se sustituye por una secuencia 'sequence' vacía con un mensaje de aviso BIP0193.

  • Los mensajes intercalados con mínApariciones o máxApariciones que no son iguales a 1 tienen las apariciones corregidas a 1 con un mensaje de aviso BIP0162.
  • Cada elemento se convierte en un xsd:element. El xsd:element creado de esta forma puede ser local o global, en función de los criterios aplicados en el orden especificado siguiente:
    1. Si el elemento no tiene referencia es global
    2. Si el elemento tiene un identificador con prefijo y es un miembro de exactamente un tipo compuesto es local
    3. Si el elemento es un tipo compuesto con un tipo de base MRM de la versión 2.1 es local
    4. Si el elemento es un miembro de un tipo compuesto es global
    5. Si se especifica el parámetro -g es global
    6. De lo contrario, el elemento es local.

    En la versión 2.1, un identificador con prefijo pretendía indicar que un elemento era en realidad local. Sin embargo, es posible que un elemento con un identificador con prefijo se utilice en realidad en más de un tipo compuesto, convirtiéndose en global. Si este es el caso, el elemento global se crea siguiendo las normas anteriores

    También se emite un mensaje de aviso BIP0195, puesto que se trata de una utilización incorrecta de identificadores con prefijo y puede producir que se creen elementos globales duplicados. Por ejemplo, A^X y B^X, pero se utilizan ambos más de una vez, produciendo dos elementos globales con el mismo nombre X.

    El tipo del xsd:element creado de esta forma es:
    1. Un xsd:complexType global
    2. Un xsd:complexType local anónimo
    3. Un xsd:simpleType incorporado de esquema. Consulte la sección Correlación de tipos simples MRM con tipos simples de esquemas
    4. Un xsd:simpleType anónimo que limita un xsd:simpleTypeincorporado de esquema
  • Cualquier limitación de valor que pertenezca al elemento se procesa de la forma siguiente:
    1. Una limitación por omisión establece el atributo 'por omisión' del elemento;
    2. Una limitación nula permitida establece el atributo de 'nulos permitidos' del elemento.
    3. Una limitación de plantilla de fecha cambia el xsd:simpleType del elemento. Consulte la sección Correlación de tipos simples MRM con tipos simples de esquemas
    4. Todos los demás limitan el xsd:simpleType del elemento mediante la aplicación de xsd:facets.

    Cualquier limitación de valor sin referencia se descarta con un mensaje de aviso BIP0158, BIP0159 o BIP0160.

    Cualquier limitación de valor que hace que se cree xsd:facet no permitida no se migra, con un mensaje de aviso BIP0165.
    Nota: Para elementos de tipo STRING solamente, las limitaciones de valor MínInclusivey MáxInclusive se importan en cambio como anotaciones ocultas para fines de documentación.
  • Los calificadores de elementos se descartan con un único mensaje de aviso BIP0167.
  • Cada mensaje se convierte en un mensaje y y un xsd:element global asociado.
  • Un mensaje que ha utilizado calificadores de elemento tiene la calificación descartada con un mensaje de aviso BIP0166.
  • Algunas propiedades de formato físico que eran redundantes en la versión 2.1 y que se han eliminado del nuevo modelo. Si se encuentra con una de estas propiedades con un valor que no sea el definido por omisión, se emite un mensaje de aviso BIP0164 (u otro más específico.
  • El valor por omisión de la propiedad 'ventana del siglo' del nivel del conjunto de mensajes TDS siempre se ha establecido en '53' en la versión 2.1. Para el estándar de mensajería 'SWIFT' esto es incorrecto; por consiguiente, el valor por omisión para 'SWIFT' sólo se cambia a '80'. Esto se refleja en un modelo importado.

Lo que mqsimigratemsgsets crea

Para cada archivo .mrp con el que se encuentra, se crea un nuevo proyecto de conjunto de mensajes con un nombre derivado del nombre y del nivel del conjunto de mensajes en la versión 2.1. Esto lo hace el programa de utilidad añadiendo un sufijo al nombre del conjunto de mensajes para todos los valores de Nivel que no sean "1". Este proceso restaura la correlación una a una y permite al intermediario buscar sólo un conjunto de mensajes con el nombre especificado.

Por ejemplo, un conjunto de mensajes de la versión 2.1 con el nombre "SWIFT" y Level "1", se migra en la versión 5.0 al nombre del conjunto de mensajes "SWIFT", mientras un conjunto de mensajes de la versión 2.1 con el nombre "SWIFT" y Level "2" se migra en la versión 5.0 a "SWIFT_2"

Se crea una carpeta de conjunto de mensajes y un archivo messageSet.mset asociado en el nuevo proyecto. Al contenido del conjunto de mensajes se aplica lo siguiente:
  • El nombre de la carpeta de conjuntos de mensajes es el mismo que el proyecto
  • El identificador del conjunto de mensajes es el identificador del conjunto de mensajes de la versión 2.1 original.
  • El conjunto de mensajes se crea especificando los espacios de nombres que no están soportados.
  • Todas las capas de formatos físicos se vuelven a crear en el nuevo conjunto de mensajes.
  • Cualquier capa de enlace de lenguaje COBOL se descarta con un mensaje de aviso BIP0174.
  • Cualquier capa de enlace de lenguaje C se descarta con un mensaje de aviso BIP0173
  • Cualquier estado finalizado se descarta con un mensaje de aviso BIP0170
  • Cualquier información en la que basarse se descarta con un mensaje de aviso BIP0172.
  • Cualquier indicación de fecha y hora de congelación se descarta con un mensaje de aviso IP0169. Observe que siempre recibe este mensaje.
Cada categoría de mensaje encontrado en el archivo .mrp hace que se cree un nuevo archivo .category. Observe que el concepto de:
  • Objeto de transacción se ha desactivado en la versión 5.0 y cada transacción se sustituye por la categoría de mensaje equivalente
  • Objeto de categoría de transacción se ha desactivado en la versión 5.0 y cada transacción se sustituye por la categoría de mensaje equivalente, que contiene todos los mensajes en todas las transacciones a las que ha hecho referencia la categoría de transacción

Se crea un único archivo de definición de mensajes .mxsd en el conjunto de mensajes con el mismo nombre que el conjunto de mensajes y en el espacio de nombres (sin destino) por omisión, a menos que esté presente el parámetro -part.

Si se ha especificado -part, se pueden crear múltiples archivos .mxsd si se cumple lo siguiente:
  • El número de mensajes, elementos y tipos compuestos en el archivo .mrp excede 1000 y
  • El archivo .mrp se puede dividir en subconjuntos totalmente separados.

En la versión 2.1, todos los elementos y tipos compuestos eran globales. En la versión 5.0 los elementos y tipos complejos pueden ser globales o locales. Cuando migra un conjunto de mensajes de la versión 2.1, encontrará probablemente que muchos elementos y tipos compuestos que eran globales en la versión 2.1 se han convertido a elementos locales y tipos complejos en la versión 5.0, según las normas indicadas anteriormente.

Hay dos razones por las que desea alterar temporalmente este comportamiento:
  • Prefiere la organización de la versión 2.1 del conjunto de mensajes, donde todos los objetos son globales. Si especifica el parámetro -g, esta organización se mantiene en la medida en que sea práctica.
  • Utilice el valor Open defined del tipo compuesto Contenido de tipo.

    Esto significa que el contenido del valor de un tipo compuesto puede ser cualquier objeto en el conjunto de mensajes, de conformidad con las normas de la propiedad Composición de tipo. Por lo general, en este caso, el tipo compuesto no se ha modelado con ningún contenido explícito.

    Esto puede hacer que el mandato mqsimigratemsgsets deduzca incorrectamente que determinados elementos deben ser locales en lugar de globales. Si utiliza Open defined y encuentra que después de la migración se produce un error de validación de ejecución BIP5372E cuando esto antes no sucedía, vuelva a ejecutar el mandato mqsimigratemsgsets con la opción -g.

Tipo simple intercalado

Nota para los usuarios

Los tipos simples intercalados dentro de los tipos compuestos necesitan un tratamiento especial, puesto que el modelo de esquema no puede hacerse cargo de esta construcción. Dado que los tipos simples intercalados se han dejado de utilizar, se recomienda encarecidamente que sustituya la utilización de tipos simples intercalados aprovechando el atributo 'mixto' del tipo complejo que contiene.

Los tipos simples intercalados se introdujeron principalmente para modelar un elemento XML complejo que contenía valores de datos entremezclados entre elementos dependientes. Cada valor de datos de este tipo lo modeló explícitamente un tipo simple intercalado, que actuaba de marcador de posición para el valor y también suministraba su tipo simple.

En el esquema XML, no hay equivalente exacto. Lo que más se aproxima es el uso del atributo 'mixto' de xsd:complexType. Sin embargo, esto sólo indica que el texto puede aparecer antes y entre (o entre) elementos dependientes. No implica nada respecto a la ubicación del tipo de datos del texto.

Para conservar esta semántica, se ha introducido una ampliación del esquema, denominada Tipo simple intercalado. Se trata simplemente de un elemento local sin nombre del tipo simple adecuado. El propio tipo es una limitación del tipo simple real subyacente, con un nombre especial (ComIbmMrm_Anon inicial).

Tipo compuesto con un tipo base MRM

Nota para los usuarios

Esta situación produce un mensaje de aviso BIP0161 y requiere un tratamiento especial, puesto que el modelo de esquema no puede hacerse cargo de esta construcción 'compuesta'. Dado que los elementos compuestos se han dejado de utilizar, se recomienda encarecidamente sustituir el uso de elementos compuestos por el uso de elementos normales que hagan referencia al xsd:complexType global descrito en 1 y sacar partido del atributo 'mixto'.

Estos tipos complejos se introdujeron principalmente para modelar un elemento XML complejo que contenía valores de datos así como elementos dependientes. Por lo tanto, un elemento de tipo complejo como este tiene ambos contenidos complejos como un elemento simple, pero también tiene un valor como un elemento simple (la información de tipo base MRM).

En el esquema XML, no hay equivalente exacto. Lo que más se aproxima es el uso del atributo 'mixto' del xsd:complexType. Pero esto indica que el texto puede aparecer antes y entre (o entre) elementos dependientes. No implica nada respecto a la ubicación del tipo de datos del texto.

Dado que no hay equivalente exacto en el esquema XML se ha efectuado lo siguiente:
  1. Se han creado xsd:complexType global y xsd:group global de la manera habitual. xsd:complexType tiene además el conjunto de atributos 'mixtos' y su contenido es sólo una referencia al xsd:group global. Esto modela el contenido complejo, pero pierde la información de tipo base MRM.
  2. Se introduce una ampliación del esquema específico, el Elemento compuesto. Se trata de una amalgama de un elemento complejo y un elemento simple. Se implementa en términos de esquema como un elemento con tipo complejo anónimo, cuyo contenido es:
    • Un elemento local del tipo simple adecuado (para modelar la información de tipo base MRM). El tipo simple es una limitación del tipo simple real subyacente, con un nombre especial (ComIbmMrm_BaseValue inicial)
    • Una referencia de grupo a un xsd:group global creada en el punto 1 indicado anteriormente.

Para cada elemento que ha hecho referencia al tipo compuesto se crea un elemento compuesto. Cabe observar que esto puede hacerse sólo si el elemento era además miembro de otro tipo compuesto.

La combinación de estas dos cosas significa que se mantiene el uso significativo de estos tipos compuestos puesto que la información del tipo base MRM sólo se pierde cuando nunca se utilizó de forma activa en un mensaje.

Los tipos de datos especiales creados por las situaciones descritas en las secciones anteriores, ComIbmMrm iniciales se definen en un esquema XML denominado .wmq21.mxsd, que se incluye en cada archivo de definición de mensajes creado por el mandato mqsimigratemsgsets.

Correlación de tipos simples MRM con tipos simples de esquemas

La correlación de tipo simple es la siguiente:
Tipo MRM Tipo de esquema
BINARY xsd:hexBinary
BOOLEAN xsd:boolean
DECIMAL xsd:decimal
DATETIME xsd:dateTime (véase también la tabla siguiente)
FLOAT xsd:float
INTEGER xsd:int
STRING xsd:string
Para un tipo DATETIME, la correlación de tipo simple cambia potencialmente con la presencia de la limitación de valor de plantilla de fecha de la forma siguiente:
Plantilla de fecha DATETIME MRM Tipo de esquema
CCYY-MM-DDThh:mm:ss.s xsd:dateTime
CCYY-MM-DD xsd:date
CCYY-MM xsd:gYearMonth
CCYY xsd:gYear
--MM-DD xsd:gMonthDay
--MM xsd:gMonth
---DD xsd:gDay
Thh:mm:ss.s xsd:time

Si la plantilla de fecha no está en la lista anterior, DATETIME se se correlaciona con xsd:time o xsd:dateTime con un mensaje de aviso BIP0175 que depende de si la Plantilla de fecha tenía sólo el componente de hora. Sin embargo, cabe observar que esta correlación puede hacer que aparezcan errores en la lista de tareas después de la importación.

Si el elemento implicado tenía también las limitaciones de valor Valor por omisión, Mín Inclusive, Máx Inclusive o Enumeración de la versión 2.1, dichos valores no coinciden con el espacio léxico para xsd:time o xsd:dateTime y, por consiguiente, la validación no se ejecuta correctamente. Se deben corregir manualmente mediante el editor.

El mismo error de lista de tareas también aparece para el tipo DATETIME que ha suministrado una limitación Valor por omisión, Mín Inclusive, Máx Inclusive o Valor de enumeración donde el valor no se ha especificado completamente. Por ejemplo, se ha permitido la plantilla de fecha 'CCYY-MM', Enumeración '2003' en la versión 2.1, puesto que se ha interpretado como '2003-01' durante la ejecución. Sin embargo, en el nuevo modelo el valor debe coincidir con el espacio léxico del tipo simple y, por consiguiente, debe incluir el '-01'.

Conceptos relacionados
Conceptos de diseño de mensajes

Tareas relacionadas
Migración de un conjunto de mensajes

Referencia relacionada
Mandato mqsimigratemsgsets