Author |
Message
|
noblate |
Posted: Mon Sep 06, 2004 3:48 pm Post subject: What is the definition of message is used for |
|
|
Apprentice
Joined: 06 Sep 2004 Posts: 27
|
What is the definition of message used for.
The message type is used in the input node to identify the kind message.
Last edited by noblate on Wed Sep 08, 2004 9:34 am; edited 1 time in total |
|
Back to top |
|
 |
Ramphart |
Posted: Tue Sep 07, 2004 12:58 am Post subject: |
|
|
 Disciple
Joined: 21 Jul 2004 Posts: 150 Location: South Africa, JHB
|
I have no idea what you trying to say! Please explain what it is you want to know.
 _________________ Applications Architect |
|
Back to top |
|
 |
noblate |
Posted: Tue Sep 07, 2004 5:25 am Post subject: |
|
|
Apprentice
Joined: 06 Sep 2004 Posts: 27
|
Dear Ramphart,
We define message in the message set defining process. Where have we to use the message definition? If a message get at input node, the “message type” information is used to identify the message. We use "message type" to identify incoming message, not the message definition. What is the message definition used for, where is the message definition used?
thanks,
noblate |
|
Back to top |
|
 |
Ramphart |
Posted: Tue Sep 07, 2004 6:20 am Post subject: |
|
|
 Disciple
Joined: 21 Jul 2004 Posts: 150 Location: South Africa, JHB
|
I'm still a bit confused about what you need but i hope the following helps.
1. First you defined your message set and all its elements, I hope.
2. You then need to add a physical format to your message set. For instance Tagged / Delimited format.
Do the following:
- Right click the message set
- Go to Add
- Go to Physical Format
- Select Tagged/Delimited Format
- Give it a name like TDS
3. You then create compound types using the elements
4. Now you can specify the properties of either the whole message set or (probably better) the compound types TDS properties.
- You would typically create a compound type
- Check it in and out again to get the TDS tab that you've created
- On the TDS tab select the Data Element Separation = All Elements Delimited
- Set the Delimiter = , (comma) for instance
5. Eventually you need to create a message which you will give a name like IncomingMessage. The message is build up from the compound types.
6. When you create the message flow you need to specify the following on the input node (under default tab):
-Message Domain - MRM
-Message Set - Whatever name you gave the message set
-Message Type - IncomingMessage for instance
-Message Format - TDS in this case
By doing all this you thus use that particular message definition.
Hope this helps.
Read the help manual "Working with Messages" also.
_________________ Applications Architect |
|
Back to top |
|
 |
noblate |
Posted: Tue Sep 07, 2004 7:04 am Post subject: |
|
|
Apprentice
Joined: 06 Sep 2004 Posts: 27
|
Dear Ramphart,
Is the step 5 necessary? For the message of IncomingMessage, we didn’t use it in the input node. We use the compound "message type". Where should me use the definition of IncomingMessage.
Noblate
Last edited by noblate on Wed Sep 08, 2004 9:35 am; edited 1 time in total |
|
Back to top |
|
 |
Ramphart |
Posted: Wed Sep 08, 2004 5:20 am Post subject: |
|
|
 Disciple
Joined: 21 Jul 2004 Posts: 150 Location: South Africa, JHB
|
You need to create a message in the MRM. Thats the only way you can reference the definition from the Input Node.
In fact, you can create several different messages per Message Set and will then be able to choose the particualr one that you want to use when you setup the input node. _________________ Applications Architect |
|
Back to top |
|
 |
noblate |
Posted: Wed Sep 08, 2004 9:44 am Post subject: |
|
|
Apprentice
Joined: 06 Sep 2004 Posts: 27
|
Dear Ramphart,
In the input node, we just specify domain, set, type, format. No message definition information is specified.
It is more reasonable that the message ID should be specified instead of Type. |
|
Back to top |
|
 |
Ramphart |
Posted: Thu Sep 09, 2004 2:43 am Post subject: |
|
|
 Disciple
Joined: 21 Jul 2004 Posts: 150 Location: South Africa, JHB
|
noblate wrote: |
In the input node, we just specify domain, set, type, format. No message definition information is specified.
It is more reasonable that the message ID should be specified instead of Type. |
I'm starting to lose track with what your problem is... Maybe I don't understand what you mean with 'No message definition information is specified' in your context, but if you specify domain, set, type and format what more do you need? Maybe you should post your sample data and message set design here and better explain what it is you really need.
Regards _________________ Applications Architect |
|
Back to top |
|
 |
shanson |
Posted: Thu Sep 09, 2004 2:49 am Post subject: |
|
|
 Partisan
Joined: 17 Oct 2003 Posts: 344 Location: IBM Hursley
|
I think I may have twigged noblate's problem. When you create a message definition in the v2.1 control center, the message is identified by the 'message identifier' property. When you create a message definition in the v5 toolkit the message is identified by the 'message name' property. But when you want to refer to the message in an input node, you are asked for the 'message type' property. This is NOT the compound/complex type of the message - it is simply an alias for 'message identifier/name'. So you enter the 'message identifier' (v2.1) or 'message name' (v5) in the 'message type' field.
I have always found this non-intuitive. I think it was caused by a precedent set in the original v1 MQIntegrator product? |
|
Back to top |
|
 |
javaforvivek |
Posted: Thu Sep 09, 2004 3:40 am Post subject: |
|
|
 Master
Joined: 14 Jun 2002 Posts: 282 Location: Pune,India
|
Noblate,
Have you used MQSI or WMQI before using WBIMB? If yes, then what shanson says is correct. But if not, then it's just that you might not have understood the fundamentals of WBIMB...
(Rather it's an opportunity for me to test my fundas about message set!!)
Lets say that you want to process a hypothetical CSV message which is as follows:
USD,GBP,0.8745,08/09/2004
Let me explain the message first...
This message represents a simple currency exchange rate between US Dollars and GB Pounds. 1USD = 0.8745 GBP for date 8th Sept 2004.
Now we can identify four elements of this message from the message itself:
BaseCurrency,ForeignCurrency,ExchangeRate, and Date.
This CSV data is wrapped in a Line. Or in other words a Line encloses these four elements.
This is your message definition.
The message is in the CSV format. So its physical format is TDS (tagged/delimiter separated).
The domain of this message is of course MRM.
You have define this whole information in a message set.
So your message def is like this:
Line
| (which contains four elements)
BaseCurrency,ForeignCurrency,ExchangeRate,Date
Now while configuring your MQInput Node,
1. Give your message domain as MRM
2. Give your message set name
3. Give your message type as Line (if you are using this message flow to process currency rates) or Message (if you are using this message flow to process personal info)
4. Give message format as TDS
So, what MQInput Node will do is, when it receives the message, it will take it as a Line type and look for the message definition which starts with THE root element of type Line. It will then interprete the four CSV values as four element and build a Message Tree like this:
Line
|
BaseCurrency = USD
ForeignCurrency = GBP
ExchangeRate = 0.8745
Date = 08/09/2004
and henceforth anywhere in the message flow (for e.g. in the ESQL of the compute node) You can refer to these elements as:
Code: |
InputRoot.MRM.Line.BaseCurrency
InputRoot.MRM.Line.ForeignCurrency
InputRoot.MRM.Line.ExchangeRate
InputRoot.MRM.Line.Date
|
I am not sure, but you can define several such messages in a single message set, and while configuring the MQInputNode of each message flow, you can give Message Type = type of the root element of each message. Again I am not so sure about this, but experts here shall correct me if I am wrong... _________________ Vivek
------------------------------------------------------
...when you have eliminated the impossible, whatever remains, however improbable, must be the truth. |
|
Back to top |
|
 |
shanson |
Posted: Thu Sep 09, 2004 3:57 am Post subject: |
|
|
 Partisan
Joined: 17 Oct 2003 Posts: 344 Location: IBM Hursley
|
Not quite true. If the top-level element of your message is 'Line' then on parsing the tree will look like:
Code: |
InputRoot.MRM.BaseCurrency
InputRoot.MRM.ForeignCurrency
InputRoot.MRM.ExchangeRate
InputRoot.MRM.Date |
The 'MRM' syntax element replaces 'Line'.
Other than that your description is good. Thanks  |
|
Back to top |
|
 |
noblate |
Posted: Thu Sep 09, 2004 1:08 pm Post subject: |
|
|
Apprentice
Joined: 06 Sep 2004 Posts: 27
|
Thank a lot for all the noble men, Ramphart, Shanson and Vivek for answering my question.
The answer from Shanson gave my problem a final twig. In that way the understanding of all the message definition will be smooth. The message is the final product to use. The type is just a templet for message definition. The attribute name of the input node is misleading. |
|
Back to top |
|
 |
|