Author |
Message
|
sboucher |
Posted: Wed Apr 28, 2004 11:14 am Post subject: Message Set Not Validating Properly |
|
|
Acolyte
Joined: 27 Oct 2002 Posts: 52
|
MQSI 2.1 CSD04
I created a message set with a TDS physical format using MRM parser. The message contains fields FNAME and LNAME each with a min and max length value of 5 (small value for easier testing).
When I create my message flow I want any messages not validating by the message set to go to a FAIL Q. All messages are going to my OUT Q.
If I use test data strictly adhering to the lengths expected by the MRM parser I don't have any problems. Below is an example of test data that should fail because the lengths exceed the max specified in the message.
Here is test data that should fail
FNAME Scotty
LNAME Scotty
Results when using debug:
FNAME Scott
Any ideas what may be wrong. Do I have to use a physical format.
Thanks
Scott _________________ Scott A. Boucher
Database Administartor |
|
Back to top |
|
 |
Missam |
Posted: Wed Apr 28, 2004 12:19 pm Post subject: |
|
|
Chevalier
Joined: 16 Oct 2003 Posts: 424
|
Quote: |
The message contains fields FNAME and LNAME each with a min and max length value of 5 (small value for easier testing). |
Are you using TDS FixedLength to parse the data..?if it is there won't be scope of min and max lengths becuase it should be fixed length.
If you see the value of FNAME Scott while debugging whats the value of LNAME.?
Can you give exact layout how you defined this in MessageSet |
|
Back to top |
|
 |
sboucher |
Posted: Wed Apr 28, 2004 4:14 pm Post subject: |
|
|
Acolyte
Joined: 27 Oct 2002 Posts: 52
|
Yes, I am using TDS Fixed Length. Nothing comes through for the value in debug for LNAME when I use test data that should fail. That's what is eluding me. In MQ Explorere I'm just putting a test message on my input Q for the message flow as a stream (ex ScottyBooBoo). My thinking on the output for this would be FNAME:Scott LNAME:yBooB But only Scott comes through as FNAME
DB_MESSAGE based on
typ_DB_MESSAGE having elements
FNAME Min/Max Length 5
LNAME Min/Max Length 5
These are the steps I used to create the Message Set
1. Created Message Set DB_MESSAGE_SET
2. Created elements FNAME and LNAME
3. Created compound type typ_DB_MESSAGE
4. Added elements FNAME and LNAME to typ_DB_MESSAGE
5. Created Message based on typ_DB_MESSAGE
6. Added physical TDS layer
7. On TDS layer entered length of 5 for each element _________________ Scott A. Boucher
Database Administartor |
|
Back to top |
|
 |
Missam |
Posted: Thu Apr 29, 2004 4:47 am Post subject: |
|
|
Chevalier
Joined: 16 Oct 2003 Posts: 424
|
Whats the DataElementSeperation Property of the CompoundType Element typ_DB_MESSAGE.
why don't you try putting message using amqsput rather that using explorer.
I tried this on Broker Residing on Unix,it works fine for me(kicks out the message saying message bit stream larger than expected).i used amqsput to put the message. |
|
Back to top |
|
 |
sboucher |
Posted: Thu Apr 29, 2004 5:41 am Post subject: |
|
|
Acolyte
Joined: 27 Oct 2002 Posts: 52
|
I'm using Fixed Length as the DataElementSeparation. Also I used the amqsput and the message still doesn't validate properly.
Maybe I'm overengineering this operation, because I recreated the message set using CWF and incoporated a compute node and the flow validates ok.
All I'll be needing to do for my project is accept a stream of data and have it parse according to the record layout and output into XML. Nothing repeats or received with a delimiter. _________________ Scott A. Boucher
Database Administartor |
|
Back to top |
|
 |
kimbert |
Posted: Fri Apr 30, 2004 3:42 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
When I create my message flow I want any messages not validating by the message set to go to a FAIL Q. |
Not sure what you mean. If your input data is fixed-length, how can the MRM parser check the lengths (apart from complaining when the entire message is too short or tool long)?
Quote: |
Results when using debug:
FNAME Scott |
You don't say whether the message went to the failure queue. I'd be surprised if it did not. Have you tried switching on user trace, and have you checked the error log for parsing errors?
Quote: |
Maybe I'm overengineering this operation, because I recreated the message set using CWF and incoporated a compute node and the flow validates ok. |
I don't see why CWF would give you any more 'validation' than fixed-length TDS. For your message, both do the same job. What do you mean by 'validates ok'? |
|
Back to top |
|
 |
|