|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
getValue() method on BLOB element Query |
« View previous topic :: View next topic » |
Author |
Message
|
er_pankajgupta84 |
Posted: Fri Mar 19, 2010 1:32 pm Post subject: getValue() method on BLOB element Query |
|
|
 Master
Joined: 14 Nov 2008 Posts: 203 Location: charlotte,NC, USA
|
This is a general discussion.
In java compute node, when we call getValue() method on a MbElemet then - it returns a byte array (Normally we use this for converting blob to string by calling getValue on BLOB parser root element).
My question is - what code page that byte array belong to?
Is is the default of QM?
or
the CCSID mentioned in property folder?
the CCSID mentioned in MQMD folder?
the CCSID mentioned in MQRFH2 folder?
Another question here is..can we change the ccsid or codepage of the byte array returned by getValue method. |
|
Back to top |
|
 |
rekarm01 |
Posted: Sun Mar 21, 2010 3:58 pm Post subject: Re: getValue() method on BLOB element Query |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
er_pankajgupta84 wrote: |
what code page that byte array belong to? |
Generally, the fields in a WMQ message header describe the next portion of the message. For an WMQ message consisting of MQMD+MQRFH2+Body:- the qmgr ccsid describes the character fields defined in the MQMD header
- the MQMD ccsid describes the character fields in the (static portion of the) MQRFH2 header
- the MQRFH2 ccsid describes the character fields in the Body
Consult the WMQ APR for more details.
WMB also provides a Properties sub-tree for convenience; it maps to other fields in the message headers, but is not part of the message itself. The Properties ccsid also describes the character fields in the Body.
Different messages can define the Body's ccsid in different headers; it's better to use the Properties ccsid, and let the Properties parser figure out which is the correct header to map to.
er_pankajgupta84 wrote: |
can we change the ccsid or codepage of the byte array returned by getValue method. |
No; "change" implies "write"; getValue() reads the existing byte array.
After getValue() returns a byte array from an input message, the JCN can convert it to another ccsid, and subsequently use setValue() to write it to the output message. But it's easier to do that in ESQL. |
|
Back to top |
|
 |
er_pankajgupta84 |
Posted: Mon Mar 22, 2010 6:34 am Post subject: |
|
|
 Master
Joined: 14 Nov 2008 Posts: 203 Location: charlotte,NC, USA
|
Quote: |
For an WMQ message consisting of MQMD+MQRFH2+Body:
the qmgr ccsid describes the character fields defined in the MQMD header
the MQMD ccsid describes the character fields in the (static portion of the) MQRFH2 header
the MQRFH2 ccsid describes the character fields in the Body |
I also believe that, but i think it is not holding good for some reason.
I have a message that has characters which has representation only in 1208 not in 819. My QM is set to 819.
I am sending message thru a soap node and message is coming as 1208 in the flow then i am converting that soap message to a mq message by creating MQMD and MQRFH2 headers and putting it in queue.
Now if i do not creating ccsid in MQMD then my message is failing on MQPUT giving error - "Unconvertible character"
But when I make "CCSID" element in MDMD with 1208 as value then its going through..
Properties header has ccsid set to 1208 ..so i believe it should be applied to parse all the data + header in the down tree..
Any thoughts? |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|