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 » Cant recreate message from BLOB

Post new topic  Reply to topic
 Cant recreate message from BLOB « View previous topic :: View next topic » 
Author Message
tiredandconfused
PostPosted: Tue Nov 29, 2005 9:57 am    Post subject: Cant recreate message from BLOB Reply with quote

Newbie

Joined: 29 Nov 2005
Posts: 7

Greetings Omnipotent Ones,
I know there are numerous postings on this subject (I know because I think I have looked at all of them but cant find a solution) but I'm having a problem recreating my message from a BLOB.

My environment is ;

Database is Oracle 10gR1
ODBC driver = DataDirect Technologies 5.0 32 bit Oracle
ODBC DSN EnableSQLDescribe parm checked.
(Both workarounds added to windows registry)
O/S = Win XP Pro SP1
WBIMB 6.0
WMQ 6.0

My situation is a simple flow that is intitated by a Timer Node. The first compute node connected to the timer adds an MQMD. The next compute node retrieves all rows from an oracle table that are in error status. These rows were previously added by another flow which saved the message body in a BLOB and inserted it into a column in the table defined as a BLOB.;

DECLARE BLOB_DATA BLOB;
SET BLOB_DATA = ASBITSTREAM(InputRoot.XMLNS, InputRoot.MQMD.Encoding, InputRoot.MQMD.CodedCharSetId);
INSERT etc

My retrieval compute node executes the following code to recreate the message from the BLOB.

SET Environment.RESULTSET.*[] = (SELECT A.BLOB_DATA, A.STATUS_ID, A.NEXT_SEND_ATTEMPT_DATE FROM Database.xxxxxx AS A WHERE A.STATUS_ID = STATUS_ID);

DECLARE X INTEGER CARDINALITY(Environment.RESULTSET.*[]) + 1;
DECLARE Y INTEGER 1;

WHILE Y < X DO

CALL CopyMessageHeaders();
CREATE LASTCHILD OF OutputRoot DOMAIN ('XMLNS') PARSE(Environment.RESULTSET.[Y].BLOB_DATA, InputRoot.MQMD.Encoding, InputRoot.MQMD.CodedCharSetId);
PROPAGATE;
SET Y = Y + 1;

END WHILE;

The Encoding and CCSID attributes match when the BLOB was created and during the attempt to recreate above.

The error I am getting on the PROPAGATE statement is simply 'Value is Invalid'. The Windows Event Log information says 'An unexpected NULL value was encountered.' and the trace data does not appear to say anymore than this.

I am not worthy and look forward to receiving your imparted wisdom.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Nov 29, 2005 10:08 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Does your ESQL main routine end with "RETURN FALSE;", which will ensure that the node doesn't send out an empty tree after your loop has finished?

Are you getting any additional error messages in the Event Viewer?

What happens when you try to only process the first message - without using PROPAGATE?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
tiredandconfused
PostPosted: Tue Nov 29, 2005 2:35 pm    Post subject: Reply with quote

Newbie

Joined: 29 Nov 2005
Posts: 7

Hi Jeff,
Yes the routine ends with RETURN FALSE;
I have tried processing the first message with exactly the same result.

Here is some of the trace data ;

2005-11-29 13:47:14.429349 2940 Error BIP4623E: Exception condition detected: object label 'TimerFLow.TimeoutNotification'; input node '{1}'.
An input node detected an error whilst processing a message. The message flow has been rolled back. Following messages will indicate the cause of this exception which was generated in the STL container classes.
Check the error messages which follow to determine why the exception was generated, and take action as described by those messages.
2005-11-29 13:47:14.429373 2940 RecoverableException BIP2230E: Error detected whilst processing a message in node 'TimerFLow.Iterate for Pending'.
The message broker detected an error whilst processing a message in node 'TimerFLow.Iterate for Pending'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error.
2005-11-29 13:47:14.429386 2940 RecoverableException BIP2329E: An unexpected NULL value was encountered.
This message will be accompanied with others which will give the higher level context for this error. Look at these other messages to determine the root source of the problem.
2005-11-29 13:47:15.429312 2940 UserTrace BIP4629I: Timeout request being processed by node 'TimerFLow.TimeoutNotification'


There is no further info. I'm wondering if its related to Oracle data types.
Back to top
View user's profile Send private message
tiredandconfused
PostPosted: Tue Nov 29, 2005 2:47 pm    Post subject: Reply with quote

Newbie

Joined: 29 Nov 2005
Posts: 7

Here is some more trace data from where the CREATE statement is executed. (There is a subtle difference in this data as this is from a test I did where I substituted CREATE LASTCHILD OF OutputRoot DOMAIN ('XMLNS') PARSE(Environment.RESULTSET.[Y].BLOB_DATA, InputRoot.MQMD.Encoding, InputRoot.MQMD.CodedCharSetId); with
CREATE LASTCHILD OF OutputRoot DOMAIN ('XMLNS') PARSE(BLOBDATA, InputRoot.MQMD.Encoding, InputRoot.MQMD.CodedCharSetId);
and had previously set BLOBDATA to the value retrieved from the DB.

2005-11-29 13:47:14.411389 2940 UserTrace BIP2537I: Node 'TimerFLow.Iterate for Pending': Executing statement ''CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNS' PARSE(BLOBDATA, InputRoot.MQMD.Encoding, InputRoot.MQMD.CodedCharSetId);'' at ('.TimerFlow_IterateforPending.Main', '31.3').
2005-11-29 13:47:14.411841 2940 UserTrace BIP2539I: Node 'TimerFLow.Iterate for Pending': Evaluating expression ''BLOBDATA'' at ('.TimerFlow_IterateforPending.Main', '31.55'). This resolved to ''BLOBDATA''. The result was ''X'3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d38223f3e0d0a3c526567697374726174696f6e52657175657374456e7620786d6c6e733d22687474703a2f2f7777772e6570732e6e64732e73636f742e6e68732e756b2220786d6c6e733a64733d22687474703a2f2f7777772e77332e6f72672f323030302f30392f786d6c64736967232220786d6c6e733a7873693d22687474703a2f2f7777772e77332e6f72672f323030312f584d4c536368656d612d696e7374616e636522207873693a736368656d614c6f636174696f6e3d22687474703a2f2f7777772e6570732e6e64732e73636f742e6e68732e756b20526567697374726174696f6e52657175657374456e762d76312d312e7873642220536368656d6156657273696f6e3d22312e31223e0d0a093c5472616e73616374696f6e48656164657220536368656d6156657273696f6e3d22312e31223e0d0a09093c4d73675072696f726974793e696d6d6564696174653c2f4d73675072696f726974793e0d0a09093c4d73675374617475733e6c6976653c2f4d73675374617475733e0d0a09093c53656e64657244657461696c733e0d0a0909093c4f7267616e69736174696f6e547970653e706861726d6163793c2f4f7267616e69736174696f6e547970653e0d0a0909093c4f7267616e69736174696f6e49443e353637383c2f4f7267616e69736174696f6e49443e0d0a0909093c4f7267616e69736174696f6e4e616d653e5765737420526f6164204368656d697374733c2f4f7267616e69736174696f6e4e616d653e0d0a09093c2f53656e64657244657461696c733e0d0a09093c536f6674776172653e0d0a0909093c50726f647563744e616d652050726f6475637456657273696f6e3d2250726f647563742056657273696f6e223e50726f64756374204e616d653c2f50726f647563744e616d653e0d0a0909093c50726f64756374417574686f723e50726f6475637420417574686f723c2f50726f64756374417574686f723e0d0a09093c2f536f6674776172653e0d0a09093c417070536572766963654e616d65205365727669636556657273696f6e3d22332e3134223e5052533c2f417070536572766963654e616d653e0d0a09093c4170705354544c3e31303030303c2f4170705354544c3e0d0a09093c4170705472616e7349443e34326662316439612d376230652d343866642d393837662d3230376230396564323936383c2f4170705472616e7349443e0d0a09093c4170705472616e73537465705265663e313c2f4170705472616e73537465705265663e0d0a09093c4170705472616e734461746554696d653e323030342d31312d33305430393a33303a34373c2f4170705472616e734461746554696d653e0d0a09093c4d736743617465676f72793e73696e676c653c2f4d736743617465676f72793e0d0a09093c417070426f6479547970655174793e313c2f417070426f6479547970655174793e0d0a09093c426f6479446566696e6974696f6e733e0d0a0909093c426f6479446566696e6974696f6e3e0d0a090909093c4e616d653e526567697374726174696f6e526571756573743c2f4e616d653e0d0a090909093c506f736974696f6e3e313c2f506f736974696f6e3e0d0a090909093c436f756e743e313c2f436f756e743e0d0a090909093c5369676e696e673e747275653c2f5369676e696e673e0d0a0909093c2f426f6479446566696e6974696f6e3e0d0a09093c2f426f6479446566696e6974696f6e733e0d0a093c2f5472616e73616374696f6e4865616465723e0d0a093c417070426f646965733e0d0a09093c526567697374726174696f6e5265717565737420536368656d6156657273696f6e3d22312e31223e0d0a0909093c53656e64657244657461696c733e0d0a090909093c4f7267616e69736174696f6e3e0d0a09090909093c4f7267616e69736174696f6e49643e0d0a0909090909093c496456616c75653e353637383c2f496456616c75653e0d0a09090909093c2f4f7267616e69736174696f6e49643e0d0a09090909093c4f7267616e69736174696f6e4e616d653e5765737420526f6164204368656d697374733c2f4f7267616e69736174696f6e4e616d653e0d0a09090909093c4f7267616e69736174696f6e547970653e706861726d6163793c2f4f7267616e69736174696f6e547970653e0d0a09090909093c416464726573733e0d0a0909090909093c416464726573734c696e65733e0d0a090909090909093c416464726573734c696e653e33205765737420526f61643c2f416464726573734c696e653e0d0a090909090909093c416464726573734c696e653e57657374766965773c2f416464726573734c696e653e0d0a0909090909093c2f416464726573734c696e65733e0d0a0909090909093c506f7374436f64653e543132203354413c2f506f7374436f64653e0d0a0909090909093c54656c6570686f6e654e6f3e30313131203938373635343c2f54656c6570686f6e654e6f3e0d0a09090909093c2f416464726573733e0d0a09090909093c514153636f64653e30313233343536373839303938373635343c2f514153636f64653e0d0a090909093c2f4f7267616e69736174696f6e3e0d0a090909093c4865616c74686361726550726f66657373696f6e616c3e0d0a09090909093c48637049643e0d0a0909090909093c50726f66436f64653e393837363534333c2f50726f66436f64653e0d0a0909090909093c50726f66436f6465536368656d653e52505347423c2f50726f66436f6465536368656d653e0d0a0909090909093c50726f66547970653e706861726d61636973743c2f50726f66547970653e0d0a09090909093c2f48637049643e0d0a09090909093c4863704e616d653e0d0a0909090909093c537472756374757265644e616d653e0d0a090909090909093c5469746c653e4d72733c2f5469746c653e0d0a090909090909093c46616d696c794e616d653e57686974653c2f46616d696c794e616d653e0d0a090909090909093c476976656e4e616d653e4d6172793c2f476976656e4e616d653e0d0a0909090909093c2f537472756374757265644e616d653e0d0a09090909093c2f4863704e616d653e0d0a090909093c2f4865616c74686361726550726f66657373696f6e616c3e0d0a0909093c2f53656e64657244657461696c733e0d0a0909093c50617469656e7444657461696c733e0d0a090909093c4348494e756d6265723e303230323030323136303c2f4348494e756d6265723e0d0a090909093c4e616d653e0d0a09090909093c5469746c653e4d6973733c2f5469746c653e0d0a09090909093c46616d696c794e616d653e477265656e3c2f46616d696c794e616d653e0d0a09090909093c476976656e4e616d653e436c616972653c2f476976656e4e616d653e0d0a090909093c2f4e616d653e0d0a090909093c416464726573733e0d0a09090909093c416464726573734c696e65733e0d0a0909090909093c416464726573734c696e653e3330204e6f72746820526f61643c2f416464726573734c696e653e0d0a0909090909093c416464726573734c696e653e45617374766965773c2f416464726573734c696e653e0d0a09090909093c2f416464726573734c696e65733e0d0a09090909093c506f7374436f64653e443434203444443c2f506f7374436f64653e0d0a09090909093c54656c6570686f6e654e6f3e3031333333203938373635343c2f54656c6570686f6e654e6f3e0d0a090909093c2f416464726573733e0d0a090909093c446174654f6642697274683e323030322d30322d30323c2f446174654f6642697274683e0d0a090909093c5365783e663c2f5365783e0d0a0909093c2f50617469656e7444657461696c733e0d0a0909093c4578656d7074696f6e44657461696c733e0d0a090909093c4578656d7074696f6e436f64653e413c2f4578656d7074696f6e436f64653e0d0a090909093c4578656d7074696f6e546578743e556e646572203136207965617273206f66206167653c2f4578656d7074696f6e546578743e0d0a090909093c45766964656e63655365656e3e66616c73653c2f45766964656e63655365656e3e0d0a0909093c2f4578656d7074696f6e44657461696c733e0d0a0909093c5265675265717565737444657461696c733e0d0a090909093c466f726d547970653e4350323c2f466f726d547970653e0d0a090909093c5265675265717565737449443e5245353637384e554d42455252414e383c2f5265675265717565737449443e0d0a090909093c52656753746172744461746554696d653e323030342d31312d33305430393a33303a34373c2f52656753746172744461746554696d653e0d0a090909093c436c696e6963616c536572766963653e4d41533c2f436c696e6963616c536572766963653e0d0a090909093c5265675374617475735265717565737465643e72656769737465723c2f5265675374617475735265717565737465643e0d0a0909093c2f5265675265717565737444657461696c733e0d0a09093c2f526567697374726174696f6e526571756573743e0d0a093c2f417070426f646965733e0d0a3c2f526567697374726174696f6e52657175657374456e763e0d0a'''.
2005-11-29 13:47:14.413392 2940 UserTrace BIP2539I: Node 'TimerFLow.Iterate for Pending': Evaluating expression ''InputRoot.MQMD.Encoding'' at ('.TimerFlow_IterateforPending.Main', '31.65'). This resolved to ''InputRoot.MQMD.Encoding''. The result was ''546''.
2005-11-29 13:47:14.413443 2940 UserTrace BIP2539I: Node 'TimerFLow.Iterate for Pending': Evaluating expression ''InputRoot.MQMD.CodedCharSetId'' at ('.TimerFlow_IterateforPending.Main', '31.90'). This resolved to ''InputRoot.MQMD.CodedCharSetId''. The result was ''437''.


I am now thinking that maybe the BLOB data is being truncated. I'm at home now but I could investigate this tomorrow.
Back to top
View user's profile Send private message
tiredandconfused
PostPosted: Tue Nov 29, 2005 2:52 pm    Post subject: Reply with quote

Newbie

Joined: 29 Nov 2005
Posts: 7

Just looking at my last post and it looks like my trace data has been truncated by posting in the forum. In reality the hex data goes on for much longer and ends like this ;

more data63e0d0a'''.
Back to top
View user's profile Send private message
tiredandconfused
PostPosted: Tue Nov 29, 2005 2:55 pm    Post subject: Reply with quote

Newbie

Joined: 29 Nov 2005
Posts: 7

BTW, that last full stop wasnt mine.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Nov 29, 2005 7:15 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

The good news is that it is actually finding your BLOB data correctly, you aren't passing in a NULL value to CREATE.

So likely then the XML is not parsing, and something is causing the parse error to be hidden. Perhaps the blob data contains an embedded NULL somewhere.

Another possibility is that your BLOB data is not actually in the CCSID that you are claiming it is. And I'm not up for checking that right now, by trying to unpack the blob into bytes and seeing what it looks like. I used to have some good perl code for doing that (the very helpfully named unpack is very helpful). But I haven't actively tried to debug messages at this level in a couple of years... so recreating that code is left as an exercise...
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
tiredandconfused
PostPosted: Wed Nov 30, 2005 1:57 am    Post subject: Reply with quote

Newbie

Joined: 29 Nov 2005
Posts: 7

Thanks for the pointers. I'm not going to be able to retry this until Thursday so I'll post the results then.
Back to top
View user's profile Send private message
tiredandconfused
PostPosted: Mon Dec 19, 2005 4:25 am    Post subject: Reply with quote

Newbie

Joined: 29 Nov 2005
Posts: 7

Hi Jeff,
Sorry for the delay, but just to let you know that the CREATE statement was in fact working perfectly, the error was caused by the MQMD Format being set incorrectly.
Thanks for your comments.
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 » Cant recreate message from BLOB
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.