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 » Zero length message put on queue

Post new topic  Reply to topic
 Zero length message put on queue « View previous topic :: View next topic » 
Author Message
p.cradwick
PostPosted: Tue Jun 06, 2006 2:19 am    Post subject: Zero length message put on queue Reply with quote

Acolyte

Joined: 16 May 2001
Posts: 56

Hi,
I am using WMB v 6.0 and am trying to write an XML message to a queue, but while a message is written, there is no data - length 0. The usertrace shows message written with RC = 0, and WMQ Explorer show a message but with 0 length data! The node following the MQOutput is a trace and the message is written to a file correctly. A little further the message is sent in an email and this works fine too!

The message is persistent and written out of syncpoint. Debugger shows the message is present on OutputRoot.XML.

Any idea what causes the MQ Output to drop the data on writing to a queue?

Peter
Back to top
View user's profile Send private message Send e-mail
wschutz
PostPosted: Tue Jun 06, 2006 2:24 am    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

show us the ${Root} from the trace node ....
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
p.cradwick
PostPosted: Tue Jun 06, 2006 5:15 pm    Post subject: Reply with quote

Acolyte

Joined: 16 May 2001
Posts: 56

Here is the ${Root}:
Trace log:
(0x01000000):Properties = (
(0x03000000):MessageSet = ''
(0x03000000):MessageType = ''
(0x03000000):MessageFormat = ''
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2006-06-07 00:11:06.760'
(0x03000000):ExpirationTime = 25920000
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
(0x03000000):ContentType = ''
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'TEST.IN'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Format = ' '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 8
(0x03000000):Expiry = 25920000
(0x03000000):Feedback = 0
(0x03000000):Priority = 0
(0x03000000):Persistence = 0
(0x03000000):MsgId = X'414d5120514d31202020202020202020b9e785442000a606'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = ' '
(0x03000000):ReplyToQMgr = 'QM1 '
(0x03000000):UserIdentifier = 'peter '
(0x03000000):AccountingToken = X'1601051500000060bfaf6103ab70c21a4a4d6ded03000000000000000000000b'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = 'D:\MQSI\RFHUtil\rfhutil.exe '
(0x03000000):PutDate = DATE '2006-06-07'
(0x03000000):PutTime = GMTTIME '00:11:06.760'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x01000000):XML = (
(0x01000000):ExceptionReport = (
(0x03000000):MessageId = X'414d5120514d31202020202020202020b9e785442000a606'
(0x03000000):Time = TIMESTAMP '2006-06-07 12:11:07.520143'
(0x01000000):ExceptionDetails = (
(0x03000000):Module = 'WBIMB'
(0x03000000):Type = 'User thrown exception'
(0x03000000):Desc = 'Exception Message Number: (2950). Error Text: User generated exception'
(0x03000000):Data = 'Inserts: Insert [1] text = 23505 Insert [2] text = -1 Insert [3] text = [IBM][CLI Driver][DB2/NT] SQL0803N One or more values in the INSERT statement, UPDATE statement, or foreign key update caused by a DELETE statement are not valid because the primary key, unique constraint or unique index identified by "1" constrains table "PETER.PSINBOUND_RUN" from having duplicate rows for those columns. SQLSTATE=23505 Insert [4] text = -803 Insert [5] text = PSINBOUND_RUN Table insert failure'
(0x01000000):MessageData = (
(0x01000000):Message = (
(0x02000000): = '
'
(0x03000000):Reference = 'file1'
(0x02000000): = '
'
(0x03000000):Interface = 'Mine'
(0x02000000): = '
'
(0x03000000):MsgID = 'a1b2c3d4e5f6'
(0x02000000): = '
'
(0x03000000):StartData = '1'
(0x02000000): = '
'
(0x03000000):EndData = '9'
(0x02000000): = '
'
(0x03000000):Status = 'ok'
(0x02000000): = '
'
)
(0x02000000): = '
'
)
)
)
)
)


This is written AFTER the MQOutput node.

By 'playing around' I found the cause, but I don't understand it!
The code I was using is shown below - the commented out section:

---------------------------------------------------------------------
-- Create output message
---------------------------------------------------------------------

/* THIS CODE DOESN'T WORK!
CREATE LASTCHILD of OutputRoot NAME 'XML';
CREATE LASTCHILD of OutputRoot.XML NAME 'ExceptionReport';
DECLARE excRef REFERENCE TO OutputRoot.XML.ExceptionReport;

SET excRef.MessageId = InputRoot.MQMD.MsgId;
SET excRef.Time = current_timestamp;
*/

When I replaced the above with the code below, it worked as expected.

SET OutputRoot.XML.ExceptionReport.MessageId = InputRoot.MQMD.MsgId;
DECLARE excRef REFERENCE TO OutputRoot.XML.ExceptionReport;
SET excRef.Time = current_timestamp;

The problem is definitely the first CREATE as I tried it piecemeal as well i.e. replacing only the second CREATE still failed.

Puzzled
Peter
Back to top
View user's profile Send private message Send e-mail
jefflowrey
PostPosted: Tue Jun 06, 2006 6:19 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Code:
 CREATE LASTCHILD of OutputRoot NAME 'XML';


The difference between that and
Code:
SET OutputRoot.XML.ExceptionReport.MessageId = InputRoot.MQMD.MsgId;


Is that the later creates OutputRoot.XML with the proper XML parser, and the former does NOT.

http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ak04950_.htm
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
p.cradwick
PostPosted: Tue Jun 06, 2006 11:13 pm    Post subject: Reply with quote

Acolyte

Joined: 16 May 2001
Posts: 56

Ah! You live and learn!
Thanks Jeff
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Zero length message put on queue
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.