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 » How to model a serise of bytes byte-array in a message set

Post new topic  Reply to topic Goto page 1, 2, 3  Next
 How to model a serise of bytes byte-array in a message set « View previous topic :: View next topic » 
Author Message
mgm
PostPosted: Wed Jun 08, 2011 1:58 pm    Post subject: How to model a serise of bytes byte-array in a message set Reply with quote

Apprentice

Joined: 14 Dec 2007
Posts: 48
Location: anywhere

I need to model a message type of byte sequence with no delimiters

The message looks like a byte array object in java where
the first 4 bytes are fixed and then a two bytes hex length for the rest of payload then the payload. We must keep the type as byte and don't convert to char.
Below is a dump of byte-array message that we need to model.
Any ideas?

[0, 0, 0, 0, 0, 27, 0, 0, 1, 2, 18, 0, 2, 11, -71, 1, 65, 1, 1, 0, 12, 57, 54, 54, 53, 57, 51, 56, 55, 48, 48, 48, 50]
Back to top
View user's profile Send private message Yahoo Messenger
mqjeff
PostPosted: Wed Jun 08, 2011 2:17 pm    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Use TDS.

Create a model with three elements:
4-byte fixed length field
2-byte fixed length field
variable length element, with length-encoded by previous field.
Back to top
View user's profile Send private message
mgm
PostPosted: Wed Jun 08, 2011 3:08 pm    Post subject: Reply with quote

Apprentice

Joined: 14 Dec 2007
Posts: 48
Location: anywhere

Thanks a lot for your feedback.
I modeled the format as you pointed but it's not clear how to set values in the message tree, each time I assign value I got parser error
Back to top
View user's profile Send private message Yahoo Messenger
fjb_saper
PostPosted: Wed Jun 08, 2011 8:40 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

mgm wrote:
Thanks a lot for your feedback.
I modeled the format as you pointed but it's not clear how to set values in the message tree, each time I assign value I got parser error

Did you specify the correct endianness for the length field?
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
mgm
PostPosted: Thu Jun 09, 2011 1:03 am    Post subject: Reply with quote

Apprentice

Joined: 14 Dec 2007
Posts: 48
Location: anywhere

fjb_saper wrote:
mgm wrote:
Thanks a lot for your feedback.
I modeled the format as you pointed but it's not clear how to set values in the message tree, each time I assign value I got parser error

Did you specify the correct endianness for the length field?


I tried the Physical Type as text & integer but seems invalid as well
Back to top
View user's profile Send private message Yahoo Messenger
kimbert
PostPosted: Thu Jun 09, 2011 4:24 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

The correct physical type for the prefixed length is 'Integer'.
Quote:
I got parser error
Please take a debug-level user trace and post the *relevant* parts here.

Alternatively, do what I suggested on the DeveloperWorks forum - use the BLOB domain and write a few lines of ESQL to parse the data. The format is so simple that a message set is not really required.
Back to top
View user's profile Send private message
mgm
PostPosted: Thu Jun 09, 2011 4:31 am    Post subject: Reply with quote

Apprentice

Joined: 14 Dec 2007
Posts: 48
Location: anywhere

I have already used ESQL to parse and it works fine.
The issue that I need to use message set because I need to send/receive this byte array sequence through TCP/IP nodes which needs to be configured correctly to read/write data which is not fixed length and not delimited. So having a message set would make it easy for the nodes to correctly send/receive the data.

The other issue that the target TCP/IP server expects the data in byte form and when I used BLOB it sends the hexadecimal values which was not accepted by the server
Back to top
View user's profile Send private message Yahoo Messenger
mqjeff
PostPosted: Thu Jun 09, 2011 4:37 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

mgm wrote:
when I used BLOB it sends the hexadecimal values which was not accepted by the server


That's because you didn't specify a CCSID/encoding.
Back to top
View user's profile Send private message
mgm
PostPosted: Thu Jun 09, 2011 4:42 am    Post subject: Reply with quote

Apprentice

Joined: 14 Dec 2007
Posts: 48
Location: anywhere

mqjeff wrote:
mgm wrote:
when I used BLOB it sends the hexadecimal values which was not accepted by the server


That's because you didn't specify a CCSID/encoding.


What values should I use here,
Should I use the target server CCSID with MQNative encoding or specify other value
Back to top
View user's profile Send private message Yahoo Messenger
mqjeff
PostPosted: Thu Jun 09, 2011 4:43 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

mgm wrote:
mqjeff wrote:
mgm wrote:
when I used BLOB it sends the hexadecimal values which was not accepted by the server


That's because you didn't specify a CCSID/encoding.


What values should I use here,
Should I use the target server CCSID with MQNative encoding or specify other value


You should use the values that accurately describe the bytes.
Back to top
View user's profile Send private message
Vitor
PostPosted: Thu Jun 09, 2011 4:49 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

mgm wrote:
What values should I use here,
Should I use the target server CCSID with MQNative encoding or specify other value


The values should describe the inbound data. WMB will deal with the target encoding.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Jun 09, 2011 4:58 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Vitor wrote:
mgm wrote:
What values should I use here,
Should I use the target server CCSID with MQNative encoding or specify other value


The values should describe the inbound data. WMB will deal with the target encoding.


And yet clearly that's not the case, as mqm has already had issues.
Back to top
View user's profile Send private message
mgm
PostPosted: Thu Jun 09, 2011 5:04 am    Post subject: Reply with quote

Apprentice

Joined: 14 Dec 2007
Posts: 48
Location: anywhere

Thanks for your support.
I am still working on the message set issue as I need to be able to receive variable length data through TCP/IP node and I have no other way to predict the length.
Back to top
View user's profile Send private message Yahoo Messenger
mqjeff
PostPosted: Thu Jun 09, 2011 5:14 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

You might look at the ISO8583 pattern in the repository here. It does something similar with a TCPIServerInput node followed by a TCPServerRecieve node to read the rest of the data.
Back to top
View user's profile Send private message
kimbert
PostPosted: Thu Jun 09, 2011 5:23 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

This is getting complex. Please read the following questions carefully, and answer all of them.

Quote:
The issue that I need to use message set because I need to send/receive this byte array sequence through TCP/IP nodes which needs to be configured correctly to read/write data which is not fixed length and not delimited. So having a message set would make it easy for the nodes to correctly send/receive the data.

Q1: Are you receiving a large stream of bytes, and splitting it into records using the Parsed Record Sequence option on the TCP/IP node? If so, then that is a good and valid reason for using a message set.

Quote:
The other issue that the target TCP/IP server expects the data in byte form and when I used BLOB it sends the hexadecimal values which was not accepted by the server
I don't know what that means. Judging by the other responses, nor does anybody else.

If you use the MRM domain, the MRM parser will write the message tree as as a stream of bytes, and then give it to the TCP/IP subsystem. If you use the BLOB domain then it is already a stream of bytes, so I'm struggling to see where the problem lies.

Q2: What is your message flow actually doing? Is it just passing on the payload of each 'record' to another TCP/IP node without doing anything to it ?

Q3: Did you take the user trace that I asked for? If so, what did it say?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2, 3  Next Page 1 of 3

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » How to model a serise of bytes byte-array in a message set
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.