ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Codepage Conversion is not happening .... !

Post new topic  Reply to topic
 Codepage Conversion is not happening .... ! « View previous topic :: View next topic » 
Author Message
mq_developer
PostPosted: Thu Aug 01, 2002 6:36 pm    Post subject: Codepage Conversion is not happening .... ! Reply with quote

Voyager

Joined: 18 Feb 2002
Posts: 82

Board,

Here is the requirement , i have to convert the input stream of BLOB from codepage ASCII to EBCIDIC using MQSI.

In the compute node , i specified following and it looks like MQSI is ignoring the values set to CCSID & Encoding of Properites parser .

SET InputRoot = OutputRoot;
SET OutputRoot.Properties.CodedCharSetId = 500;
SET OutputRoot.Properties.Encoding = 785;
SET OutputRoot.MQMD.CodedCharSetId = 500;
SET OutputRoot.MQMD.Encoding = 785;

Why the conversion is not happening , is it because of the BLOB domain , if so how to handle this situtation . Please provied your thoughts.

-- Mq developer ---
Back to top
View user's profile Send private message
kirani
PostPosted: Thu Aug 01, 2002 7:20 pm    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

Data Conversion for BLOB message should work just fine. I see that you are trying to assign OutputRoot to InputRoot. Your code should look like this:

Code:

SET OutputRoot = InputRoot;
SET OutputRoot.Properties.CodedCharSetId = 500;
SET OutputRoot.Properties.Encoding = 785;


How are you verifying your results?
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
Miriam Kaestner
PostPosted: Fri Aug 02, 2002 1:30 am    Post subject: Reply with quote

Centurion

Joined: 26 Jun 2001
Posts: 103
Location: IBM IT Education Services, Germany

IMHO, data conversion for BLOB without further specification of a format could not work. The parser must know which bytes to treat as CHAR, INT, etc.
So you should either specify an MRM domain, or XML, or at least BLOB with MQMD.Format='MQSTR ' (I haven't tested that latter).
Back to top
View user's profile Send private message Send e-mail
sgopal
PostPosted: Fri Aug 02, 2002 7:30 am    Post subject: Reply with quote

Acolyte

Joined: 30 Jul 2002
Posts: 63

yes.
BLOB with MQMD.Format='MQSTR ' works just fine
Back to top
View user's profile Send private message
Miriam Kaestner
PostPosted: Fri Aug 02, 2002 12:16 pm    Post subject: Reply with quote

Centurion

Joined: 26 Jun 2001
Posts: 103
Location: IBM IT Education Services, Germany

I am not sure if this may be the problem here (with BLOB and MQSTR), but I experienced that late parsing (WMQI 2.1) also affects data conversion. That is, data is only converted if it got parsed. The ESQL you wrote would not force the broker to parse. Check the "Validate" box in MQInput/Advanced to force parsing of the entire message body.
Back to top
View user's profile Send private message Send e-mail
mq_developer
PostPosted: Fri Aug 02, 2002 12:18 pm    Post subject: Reply with quote

Voyager

Joined: 18 Feb 2002
Posts: 82

All ,

But isn't working for me , here is how my message flow look

MQInput --> Trace1 --> Compute1 --> Trace2 --> MQOutput1

MQInput - Parser is BLOB
Compute1 Node - ESQL
SET OutputRoot = InputRoot;
-- Enter SQL below this line. SQL above this line might be regenerated, causing any modifications to be lost.
SET OutputRoot.MQMD.Format = 'MQSTR ';
SET OutputRoot.Properties.CodedCharSetId = 500;
SET OutputRoot.Properties.Encoding = 785;

Below are the ouput from Trace1 (before conversion) node and Trace2 node (after conversion)

TRACE 1

(0x1000000)Properties = (
(0x3000000)MessageSet = ''
(0x3000000)MessageType = ''
(0x3000000)MessageFormat = ''
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 819
(0x3000000)Transactional = TRUE
(0x3000000)Persistence = TRUE
(0x3000000)CreationTime = GMTTIMESTAMP '2002-08-02 20:30:42.580'
(0x3000000)ExpirationTime = -1
(0x3000000)Priority = 0
(0x3000000)Topic = NULL
)
(0x1000000)MQMD = (
(0x3000000)SourceQueue = 'PHXLG.ASCII.INPUT'
(0x3000000)Transactional = TRUE
(0x3000000)Encoding = 273
(0x3000000)CodedCharSetId = 819
(0x3000000)Format = 'MQSTR '
(0x3000000)Version = 2
(0x3000000)Report = 0
(0x3000000)MsgType = 8
(0x3000000)Expiry = -1
(0x3000000)Feedback = 0
(0x3000000)Priority = 0
(0x3000000)Persistence = 1
(0x3000000)MsgId = X'414d51205048584c47443031202020203d2f5ce6004f0012'
(0x3000000)CorrelId = X'000000000000000000000000000000000000000000000000'
(0x3000000)BackoutCount = 0
(0x3000000)ReplyToQ = 'TEST '
(0x3000000)ReplyToQMgr = 'PHXLGD01 '
(0x3000000)UserIdentifier = 'ED2110A '
(0x3000000)AccountingToken = X'0000000000000000000000000000000000000000000000000000000000000000'
(0x3000000)ApplIdentityData = ' '
(0x3000000)PutApplType = 28
(0x3000000)PutApplName = 'MQSeries Client for Java '
(0x3000000)PutDate = DATE '2002-08-02'
(0x3000000)PutTime = GMTTIME '20:30:42.580'
(0x3000000)ApplOriginData = ' '
(0x3000000)GroupId = X'000000000000000000000000000000000000000000000000'
(0x3000000)MsgSeqNumber = 1
(0x3000000)Offset = 0
(0x3000000)MsgFlags = 0
(0x3000000)OriginalLength = -1
)
(0x1000000)BLOB = (
(0x3000000)UnknownParserName = 'MQSTR'
(0x3000000)BLOB = X'4d794d65737361676520313233'
)
)

TRACE2
----------
(0x1000000)Properties = (
(0x3000000)MessageSet = ''
(0x3000000)MessageType = ''
(0x3000000)MessageFormat = ''
(0x3000000)Encoding = 785
(0x3000000)CodedCharSetId = 500
(0x3000000)Transactional = TRUE
(0x3000000)Persistence = TRUE
(0x3000000)CreationTime = GMTTIMESTAMP '2002-08-02 20:30:42.580'
(0x3000000)ExpirationTime = -1
(0x3000000)Priority = 0
(0x3000000)Topic = NULL
)
(0x1000000)MQMD = (
(0x3000000)SourceQueue = 'PHXLG.ASCII.INPUT'
(0x3000000)Transactional = TRUE
(0x3000000)Encoding = 785
(0x3000000)CodedCharSetId = 500
(0x3000000)Format = 'MQSTR '
(0x3000000)Version = 2
(0x3000000)Report = 0
(0x3000000)MsgType = 8
(0x3000000)Expiry = -1
(0x3000000)Feedback = 0
(0x3000000)Priority = 0
(0x3000000)Persistence = 1
(0x3000000)MsgId = X'414d51205048584c47443031202020203d2f5ce6004f0012'
(0x3000000)CorrelId = X'000000000000000000000000000000000000000000000000'
(0x3000000)BackoutCount = 0
(0x3000000)ReplyToQ = 'TEST '
(0x3000000)ReplyToQMgr = 'PHXLGD01 '
(0x3000000)UserIdentifier = 'ED2110A '
(0x3000000)AccountingToken = X'0000000000000000000000000000000000000000000000000000000000000000'
(0x3000000)ApplIdentityData = ' '
(0x3000000)PutApplType = 28
(0x3000000)PutApplName = 'MQSeries Client for Java '
(0x3000000)PutDate = DATE '2002-08-02'
(0x3000000)PutTime = GMTTIME '20:30:42.580'
(0x3000000)ApplOriginData = ' '
(0x3000000)GroupId = X'000000000000000000000000000000000000000000000000'
(0x3000000)MsgSeqNumber = 1
(0x3000000)Offset = 0
(0x3000000)MsgFlags = 0
(0x3000000)OriginalLength = -1
)
(0x1000000)BLOB = (
(0x3000000)UnknownParserName = 'MQSTR'
(0x3000000)BLOB = X'4d794d65737361676520313233'
)
)

Even though the value of CCSID and Properties of Properties parser has been changed to 500 & 785 , this is how input & output message looks like (i am using IBM supplied amqsbcg as is)

OUTPUT
StrucId : 'MD ' Version : 2
...
Encoding : 785 CodedCharSetId : 500
Format : 'MQSTR '
....
**** Message ****
length - 13 bytes

00000000: 4D79 4D65 7373 6167 6520 3132 33 'MyMessage 123 '

INPUT
StrucId : 'MD ' Version : 2
.....
Encoding : 273 CodedCharSetId : 819
Format : 'MQSTR '
.....
**** Message ****
length - 13 bytes

00000000: 4D79 4D65 7373 6167 6520 3132 33 'MyMessage 123 '

-- Mq Developer --
Back to top
View user's profile Send private message
Miriam Kaestner
PostPosted: Fri Aug 02, 2002 12:48 pm    Post subject: Reply with quote

Centurion

Joined: 26 Jun 2001
Posts: 103
Location: IBM IT Education Services, Germany

It seems the broker does not convert BLOBs. But, on the other hand, why should it? A BLOB with MQMD.Format='MQSTR ', that's something you can let MQSeries handle alone!
Back to top
View user's profile Send private message Send e-mail
dhaksr
PostPosted: Fri Aug 02, 2002 1:49 pm    Post subject: Reply with quote

Apprentice

Joined: 20 Feb 2002
Posts: 37

I am able to convert BLOB in WMQI by setting the Encoding
and CharsetId in the Input Node (Advanced Tab).

But Why do you want to do this? If you are not having any COMP
fields, you can let MQSeries do the conversion as Miriam had
suggested (MQFMT = MQSTR and MQGMO_CONVERT). Going
thru WMQI you will have a performance penalty.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Codepage Conversion is not happening .... !
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.