es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enviar un mensaje desde Cobol a Java con campos binarios y de caracteres.

¿Cómo puedo manejar esto? Un programa Java envía un mensaje a mi programa Cobol con una clave para un registro VSAM. Mi programa recupera el registro y lo envía de vuelta a Java. Pero el registro tiene cuatro campos COMP-2 (hex) que se deforman durante la entrega de MQ. ¿Cómo puedo hacer que MQ NO traduzca los cuatro campos hexadecimales? No soy un experto en MQ, pero no tengo miedo de intentar cualquier cosa.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para evitar que MQ traduzca los cuatro campos hexadecimales durante la entrega, puedes establecer la propiedad del mensaje “MQRO_NO_CONVERT” tanto en el lado del envío como en el lado de la recepción. Esto le indicará a MQ que deje intactos los contenidos del mensaje durante la transmisión.

    En tu programa Java, puedes establecer esta propiedad agregando el siguiente código antes de enviar el mensaje:

    MQPutMessageOptions pmo = new MQPutMessageOptions();
    pmo.options = MQC.MQPMO_NO_CONVERT;
    message.put(applicationData, pmo);
    

    En tu programa Cobol, puedes establecer esta propiedad agregando el siguiente código antes de recuperar el mensaje:

    MQGetMessageOptions gmo = new MQGetMessageOptions();
    gmo.options = MQC.MQGMO_NO_CONVERT;
    message.get(applicationData, gmo);
    

    Ten en cuenta que el uso de esta opción puede causar problemas si los destinatarios del mensaje utilizan conjuntos de caracteres o formatos de codificación diferentes. Como siempre, se deben realizar pruebas y validaciones para asegurarse de que los contenidos del mensaje se manejen correctamente.

Comments are closed.