Requisitos previos

En este tema se enumeran los requisitos previos para configurar la integración MQ entre IBM Sterling® Order Management System y un sistema externo.

  • Las direcciones IP públicas remotas del cliente deben estar habilitadas por IBM. Para obtener más información, consulte Información sobre la política de cortafuegos de red. Cuando la conectividad con IBM Sterling Order Management System se realiza a través de una VPN o un enlace directo, no es necesario habilitar el dominio o la IP. Para comprobar si la conexión a IBM Sterling Order Management System MQ QMGR y el puerto de escucha de MQ QMGR está disponible ejecute telnet, nc, nmap o comandos similares. Consulte los ejemplos siguientes:
    
    telnet <client>-oms.<environment>.coc.ibmcloud.com 1415
    nc -v <client>-oms.<environment>.coc.ibmcloud.com 1415
    nmap -sT <client>-oms.<environment>.coc.ibmcloud.com -p 1415
  • El canal MQI utiliza el certificado SSL autofirmado del servidor IBM Sterling Order Management System MQ para la autenticación/cifrado de mensajes del canal. El certificado SSL se puede descargar desde IBM Cloud Dropbox o desde el área SI DEV Team IBM Box.
  • Para probar y confirmar la conectividad y funcionalidad deIBM Sterling Order ManagementMQ, se recomienda encarecidamente que el equipo SI instale el cliente IBM MQ estándar en los puntos de integración del cliente.
    Nota: MQ Explorer no está soportado.
  • La configuración del cliente de IBM MQ debe ser la siguiente:
    
        JMS Server Type :  IBM MQ
        Connection Type :  Single Connection
        Hostname : OMoC public domain name or public IP                                            
                   <cust>-oms.<env>.coc.ibmcloud.com
        Port : 1415
        Queue Manager : OM_QMGR
        Channel : SYSTEM.SSL.SVRCONN
        Use SSL : Yes
        SSL Cipher : TLS_RSA_WITH_AES_128_CBC_SHA256

    donde, Hostname env = dev, qa, preprod, prod.

    Nota: Esta configuración es para el cliente de IBM MQ . Para el middleware de terceros puede ser necesario corregir las entradas de cifrado SSL cuando sea necesario. Consulte la documentación de middleware de terceros para obtener las bibliotecas de clase Java necesarias y las especificaciones de cifrado para la compatibilidad SSL de IBM MQ .
  • Como parte de la integración del cliente con la IBM Sterling Order Management System plataforma, en la que se utiliza el canal MQ Cliente por defecto, debe especificar ciertos MQ parámetros y valores de cabecera de los mensajes para garantizar que la IBM Sterling Order Management System pueda consumir y procesar los mensajes colocados en las colas creadas por el cliente. IBM Sterling Order Management System está configurado para consumir mensajes basados en texto. El formato de los mensajes debe ser: Format : 'MQSTR'
    Se recomienda encarecidamente que los equipos SI utilicen el cliente MQ estándar para examinar los mensajes de las colas en las que se pueden ver los detalles de la cabecera. Un ejemplo de cabecera correctamente formada para el consumo de IBM Sterling Order Management System es el siguiente:
    
    StrucId : 'MD ' Version : 2
    Report  : 64 MsgType : 8
    Expiry  : -1 Feedback : 0
    Encoding : 273 CodedCharSetId : 1208
    Format : 'MQSTR'
    Priority : 5 Persistence : 1
    MsgId : X'414D51204F4D5F514D47522020202020520CB65BE5F15A2C'
    CorrelId : X'D34DF8E3CE78FDD69E6FFE386B8FDB7F4EBF73D7766F8F77'
    BackoutCount : 0
    ReplyToQ : '       '
    ReplyToQMgr : 'OM_QMGR'   
    
    Tabla 1. Descriptores de mensaje
    Campo Descripción
    StrucId Identificador de la estructura del descriptor de mensaje. Debe establecerse en MD.
    Version Este es el número de versión de la estructura y debe establecerse en 2.
    MsgType Indica el tipo del mensaje. Un valor de 8 indica que es del tipo MQMT_DATAGRAM, lo que significa que el mensaje no requiere una respuesta. Para obtener información sobre otros tipos de mensajes, consulte MQMT_ * (Tipos de mensajes)
    Expiry Es un periodo de tiempo expresado en décimas de segundo y establecido por la aplicación que coloca el mensaje. El mensaje se puede descartar si no se elimina de la cola de destino antes de que transcurra este periodo. Para obtener más información, consulte Caducidad (MQLONG). Un valor de -1 significa que el mensaje nunca expira.
    Feedback Este campo se utiliza para un mensaje de tipo MQMT_REPORT para indicar la naturaleza del informe y sólo es significativo con ese tipo de mensaje. Debe establecerse en 0, lo que significa que no se proporcionará ningún comentario. Para obtener más información, consulte Comentarios (MQLONG)
    Encoding

    Especifica la codificación numérica de los datos numéricos del mensaje. No se aplica a los datos numéricos de la propia estructura MQMD . La codificación numérica define la representación utilizada para enteros binarios, enteros decimales empaquetados y números de coma flotante.

    MQENC_NATIVE es la codificación predeterminada para el lenguaje de programación y la máquina en la que se ejecuta la aplicación.
    Nota: El valor de esta constante depende del lenguaje de programación y del entorno. Por este motivo, las aplicaciones deben compilarse utilizando los archivos de cabecera, macro, COPYo INCLUDE que sean adecuados para el entorno en el que se ejecutará la aplicación.

    Las aplicaciones que colocan mensajes normalmente especifican MQENC_NATIVE. Las aplicaciones que recuperan mensajes deben comparar este campo con el valor de MQENC_NATIVE. Si los valores difieren, es posible que la aplicación tenga que convertir datos numéricos en el mensaje. Utilice la opción MQGMO_CONVERT para solicitar al gestor de colas que convierta el mensaje mientras procesa la llamada MQGET .

    MQENC_NATIVE constante se define aquí. Busque el valor correcto para el sistema operativo.
    CodedCharSetId Este campo especifica el identificador de juego de caracteres de los datos de caracteres dentro del cuerpo del mensaje. Establézcalo en 1208 para UTF-8 . Para otros juegos de caracteres, siga esta nota técnica para determinar el CCSID.
    Format Es un nombre que el remitente del mensaje utiliza para indicar la naturaleza de los datos del mensaje al destinatario. Establézcalo en MQSTR para imitar el comportamiento de un JMSTextMessage. Para obtener más información, consulte Formato (MQCHAR8) Para obtener una lista de formatos, consulte:MQFMT_ * (Formatos)
    Priority

    Establezca la prioridad de un mensaje en este campo al colocar el mensaje en una cola. Puede establecer un valor numérico para la prioridad, o puede dejar que el mensaje tome la prioridad predeterminada de la cola.

    El atributo MsgDeliverySequence de la cola determina si los mensajes de la cola se almacenan en la secuencia FIFO (primero en entrar, primero en salir) o en FIFO dentro de la secuencia de prioridad.
    • Si este atributo se establece en MQMDS_PRIORITY, los mensajes se ponen en cola con la prioridad especificada en el campo Prioridad de sus descriptores de mensaje.
    • Si este atributo se establece en MQMDS_FIFO, los mensajes se ponen en cola con la prioridad predeterminada de la cola. Los mensajes de igual prioridad se almacenan en la cola en el orden de llegada. Por defecto, en entornos IBM Sterling Order Management System, los siguientes valores están presentes para cada cola definida:
      
      DEFPRTY(0)
      MSGDLVSQ(PRIORITY) 
    Los mensajes se pueden crear con prioridades entre 0 (el más bajo) y 9 (el más alto).

    Para las llamadas MQPUT y MQPUT1 , el valor debe ser mayor o igual que 0, lo que indica la prioridad más baja. Establézcalo en 5 para imitar el comportamiento de JMSTextMessage. Para obtener más información, consulte Prioridad (MQLONG)

    Persistence Este campo indica si el mensaje sobrevive a las anomalías del sistema y a los reinicios del gestor de colas. Establézcalo en 1 para asegurarse de que el mensaje sobrevive a las anomalías del sistema y a los reinicios del gestor de colas. Para obtener más información, consulte Persistencia (MQLONG). Para obtener información sobre la lista de valores permitidos, consulte MQPER_ * (Valores de persistencia)
    MsgId Es una serie de bytes que se utiliza para distinguir un mensaje de otro. Generalmente, ningún mensaje debe tener el mismo identificador de mensaje, aunque el gestor de colas no lo permita. El identificador de mensaje es una propiedad permanente del mensaje y persiste en los reinicios del gestor de colas. Puesto que el identificador de mensaje es una serie de bytes y no una serie de caracteres, el identificador de mensaje no se convierte entre juegos de caracteres cuando el mensaje fluye de un gestor de colas a otro. Para obtener más información, consulte MsgId (MQBYTE24)
    CorrelId Este campo es una propiedad de la cabecera de mensaje que se puede utilizar para identificar un mensaje específico o un grupo de mensajes. Es una serie de bytes que la aplicación puede utilizar para relacionar un mensaje con otro, o para relacionar el mensaje con otro trabajo que la aplicación está realizando. El identificador de correlación es una propiedad permanente del mensaje y persiste en los reinicios del gestor de colas. Puesto que el identificador de correlación es una serie de bytes y no una serie de caracteres, el identificador de correlación no se convierte entre conjuntos de caracteres cuando el mensaje fluye de un gestor de colas a otro.
    BackoutCount Es un recuento del número de veces que la llamada MQGET ha devuelto previamente el mensaje como parte de una unidad de trabajo y, posteriormente, se ha restituido. Ayuda a la aplicación a detectar errores de proceso que se basan en el contenido del mensaje. El valor inicial de este campo es 0. Para obtener más información, consulte BackoutCount (MQLONG)
    ReplyToQ Es el nombre de la cola de mensajes a la que la aplicación que ha emitido la solicitud GET para el mensaje envía mensajes MQMT_REPLY y MQMT_REPORT . Si el campo ReplyToQMgr está en blanco, el gestor de colas local busca el nombre ReplyToQ en sus propias definiciones de cola. Para más información, véase ReplyToQ (MQCHAR48)
    ReplyToQMgr Es el nombre del gestor de colas al que se debe enviar el mensaje de respuesta o el mensaje de informe. Para más información, véase ReplyToQMgr (MQCHAR48)