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 » Defining a message that is part fixed and part delimited.

Post new topic  Reply to topic
 Defining a message that is part fixed and part delimited. « View previous topic :: View next topic » 
Author Message
philip.baker
PostPosted: Wed May 15, 2002 1:40 pm    Post subject: Defining a message that is part fixed and part delimited. Reply with quote

Voyager

Joined: 21 Mar 2002
Posts: 77
Location: Baker Systems Consulting, Inc. - Tampa

Using WMQI V2.1 CSD02 with Win2k Broker (MQ V5.2.1 CSD5).

I have created the message set adding the CWF and TDS physical layers before adding or importing any elements. Elements for the fixed part of the message were imported using a 'C' structure. Elements for the delimited part of the message were created manually. A Type was created for the fixed length elements and another created for the TDS elements. The Delimiter was set at the Type level for the TDS type. With only the Type checked-out, each element under the TDS type was assured to have length of zero. CWF tab for each of the elements under the 'Fixed' length type had the proper length under the CWF tab for each element. A new message was created using the Wizard. New elements were created with the wizard specifying the elements as having the recently created types as their 'types'. When everything is checked-in and deployed, a TDS.log is created on the CM box with the following message for each intended CWF element:


TDS Extractor Trace File
========================

Beginning Extract..

Extracting Identification Info
Extracting Project Info
Extracting Messages
Extracting Elements
Extracting Compound Types
Extracting Type Members
Extracting Type Members
Extracting Type Members
Extracting Type Members
Extracting Type Members
Beginning Indexing..

Creating Member IDs to Tags Index Table.

Beginning Validation..

Validating Project
Validating Types
ERROR: TDSValidator::ValidateTypeMemberSimpleElement:
Elements of a non-Boolean simple type in a type with Data Element Separation attribute = Fixed Length
must have one of the following attributes set:
Element Level - Length
Type Member Level - Length Reference
(Element ID: ACTION)
(Type ID: Inputmessage_TYPE)
Return Code: -80

-----------------------------------------------------

The IBM redbook Draft 'Developing Solutions in Websphere MQ Integrator' (SG24-6579-00) Section 5.5 suggests to not have two different Physical layers added to one MessageSet because ..'it could lead to confusion'. If I follow this advice, I don't see how I can make use of the fixed and delimited Types to create one message. The way I have it now, it seems the TDSValidator process is insisting on the CWF elements to also have a TDS length associated with them at either the Type or element level.

It seems that if the TDS format is defined for the MessageSet, every element must have a length associated with it even if the elements will only be used with a CWF.

Is there anyway around this besides setting the length for the each CWF element in the TDS tab?

Thanks in advance.
Phil
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
ernest-ter.kuile
PostPosted: Thu May 16, 2002 5:10 am    Post subject: Reply with quote

Apprentice

Joined: 13 May 2002
Posts: 49
Location: KLM Holland

Actually we found that a TDS is enough to discribe fixed length and variable length messages.

Tagged delimitted indicates that *some* fields are variable length, but not necesserally all.

CWF is only applicable (afaIct) if all elements in your message are fixed length.

Ernest ter Kuile
Back to top
View user's profile Send private message Visit poster's website
philip.baker
PostPosted: Thu May 16, 2002 9:03 am    Post subject: Reply with quote

Voyager

Joined: 21 Mar 2002
Posts: 77
Location: Baker Systems Consulting, Inc. - Tampa

Thanks for your input Ernest.

I actually created the fixed part of my Input message as a separate Type because I wish to reuse the Type when defining the Output message which will be totally fixed length. I will be taking the Mixed message in and mapping it to a fixed length Output message. On the Input message Type I have the Data Element Separation set to Variable Length Elements Delimited which will cause any elements having a defined length (in the TDS physical format) to assume the fixed length rather than looking for the delimiter. So, the way I am proceeded should work. I just have an issue with having to checkout each element and define a length under the Tag/Del format tab. Even though the output is totally fixed length, since I have created the Output message under a MessageSet that has had both the CWF and TDS layers added to it, I will have to add a length to each element under the Tag/Del tab. I now believe this activity (of defining length under the TDS tab) is required because the element definition check that is performed on the deploy does not know how these elements are to be used. When it sees that a TDWF physical layer exists on the MessageSet, it starts to verify each element for length within the TDWF layer. I will be setting the MessageFormat to 'CWF' in the compute node that does the actual mapping from Input elements to Output elements.

BTW, a little more info about this flow. Each incoming message will have an RFH1 header. The RFH1 will be detached as not needed. The fixed length part of the message will be read to determine the actual field structure in the delimited part of the message. The flow will then RCD to the message type representing the delimited field map. The fields will then be mapped to the common Output fixed message. I am using this method to replace current NEON processing of messages without having to have the developers change their application code.

Thanks again Ernest.

Regards,
Phil
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
ernest-ter.kuile
PostPosted: Thu May 16, 2002 11:40 pm    Post subject: Reply with quote

Apprentice

Joined: 13 May 2002
Posts: 49
Location: KLM Holland

philip.baker wrote:
Thanks for your input Ernest.

You're welcome, your full analysis seems quite correct.

philip.baker wrote:
So, the way I am proceeded should work.

When working with message sets, logic doesn't always apply

philip.baker wrote:
... I just have an issue with having to checkout each element ...


Arrgg! you only call that an issue ? the frequent check-out/check-in cycles are probably what I hate the most about WMQI.

Regards,

Ernest.
Back to top
View user's profile Send private message Visit poster's website
CodeCraft
PostPosted: Sat May 18, 2002 12:37 am    Post subject: Reply with quote

Disciple

Joined: 05 Sep 2001
Posts: 195

a) CWF is not for fixed length only. It can handle strings which are null terminated, or, are length encoded. It can also handle a varying number of repeats.

b) Even if you do have two layers for a given message, you can only use one at a time, that is, the properties MessageFormat can be TDS or CWF (or whatever your format is called) but not both.

c) CSD2 introduces multipart message capability with embedded messaging, but currently this does not extend accross multiple domains or multiple formats within the MRM domain. All messages within a multipart message (speaking natively) would have to have the same domain and format.

There are plently of tricks you can use, such as recasts and concatenating blobs, to get varying types of message data into a single logical message.
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 » Defining a message that is part fixed and part delimited.
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.