EBCDIC to ASCII conversion of MsgId - Websphere

This is a discussion on EBCDIC to ASCII conversion of MsgId - Websphere ; We have a message that is posted on a queue on the mainframe. The mainframe queue has a remote queue that resides on an AIX box. We are able to get the actual message to convert from EBCDIC to ASCII ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: EBCDIC to ASCII conversion of MsgId

  1. EBCDIC to ASCII conversion of MsgId

    We have a message that is posted on a queue on the mainframe. The mainframe queue has a remote queue that resides on an AIX box. We are able to get the actual message to convert from EBCDIC to ASCII but everything in the message header is still ASCII. Specifically the MsgId is EBCDIC. Does anybody know how to get this to convert automatically? Do I need to use the CodedCharSetId and Format pieces of the MQMD Header?

    Thanks for the help!

    Todd

  2. Re: EBCDIC to ASCII conversion of MsgId

    Todd,

    The MsgId and CorrellId, by definition, contain 24 byte binary values and
    are never converted.

    Regards
    Bill

  3. Re: EBCDIC to ASCII conversion of MsgId

    So if they are never converted... How can I filter on them when pulling the
    message off the remote queue? If I only want a message with a msgId value
    of '1234' it comes through as F1F2F3F4. Thanks for the help!

    Todd
    wrote in message
    news:do6t9n$6f0a$1@news.boulder.ibm.com...
    > Todd,
    >
    > The MsgId and CorrellId, by definition, contain 24 byte binary values and
    > are never converted.
    >
    > Regards
    > Bill




  4. Re: EBCDIC to ASCII conversion of MsgId

    Hi Todd,

    I'm more than happy to help, but I'm afraid I don't quite understand what's
    going wrong for you. If, after reading the following, you think I've not
    grasped the problem, please do return to clarify.

    The MsgId and CorrelId are binary data. Whatever binary data is in these
    parts of the MD on return from the original MQPUT is preserved, without any
    conversion, as the message is transported from machine to machine.

    What may be happening is: the number that represents "1" is 0xF1 in the
    native codepage on the machine where you put the message. This is not
    converted when the message is transported to another system. On this other
    system 0xF1 may not represent "1" at all. But that's fine, because the
    MsgId and CorrelId are binary data (type MQBYTE24), not text data. It would
    be a mistake if WMQ were to alter the content of these fields.

    I hope this helps,

    Martin


    "Todd DeSchepper" wrote in message
    news:do6tnl$96ka$1@news.boulder.ibm.com...
    > So if they are never converted... How can I filter on them when pulling
    > the
    > message off the remote queue? If I only want a message with a msgId value
    > of '1234' it comes through as F1F2F3F4. Thanks for the help!
    >
    > Todd
    > wrote in message
    > news:do6t9n$6f0a$1@news.boulder.ibm.com...
    >> Todd,
    >>
    >> The MsgId and CorrellId, by definition, contain 24 byte binary values
    >> and
    >> are never converted.
    >>
    >> Regards
    >> Bill

    >
    >




  5. Re: EBCDIC to ASCII conversion of MsgId

    You'll have to specify from your AIX platform the MsgId as "F1F2F3F4"....
    just 4 hex bytes. Doesn't matter that they happen to have an EBCDIC value
    of 1234. The MsgId is considered BYTE, so it isn't ever translated by MQ.
    If you want to get a bit fancier, then you can check out the MQXCNVC routine
    supplied with MQ to convert characters from one code page to another.



+ Reply to Thread