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 » empty output messages after ugrading CSD08

Post new topic  Reply to topic
 empty output messages after ugrading CSD08 « View previous topic :: View next topic » 
Author Message
Tibor
PostPosted: Thu Dec 14, 2006 4:45 am    Post subject: empty output messages after ugrading CSD08 Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

Last week we installed the last fixpack (CSD08) to our WMB v5.0.1.6 running on AIX (dev & test environment). Since then some message flows resulted empty messages, its contained only MQMD and MQRFH2 headers - without any error or warning messages. I wanted to discover what the problems caused that's why I created a simple message flow with these nodes:
- MQInput (Message Domain = IDOC)
- Compute (IDOC to MRM/TDS conversion)
- Trace
- MQOutput

The output always was an empty message in test enviroment, BUT when I deployed this flow to the production enviroment (patch level CSD06) it worked correctly. Moreover the trace file was same but MQOutput serialized the message tree in different way.

So today we downgraded these environments to CSD06 and since then the 'bad' msgflows runs correctly... Has anyone already seen a similar malfunction?

Thanks in advance,
Tibor

- ESQL code:
Code:
CREATE COMPUTE MODULE Test_tnt_Compute5
   CREATE FUNCTION Main() RETURNS BOOLEAN
   BEGIN
      --CALL CopyMessageHeaders();
      --CALL CopyEntireMessage();
      
   -- reference variables
   DECLARE domRef REFERENCE TO OutputRoot;
   DECLARE msgRef REFERENCE TO OutputRoot;
   DECLARE irecRef REFERENCE TO InputRoot;
   DECLARE orecRef REFERENCE TO OutputRoot;
   
   SET Environment.Variables.Output.msgdom = 'MRM';
   SET Environment.Variables.Output.msgset = 'DOJU7DC0AM001';
   SET Environment.Variables.Output.msgfmt = 'TDS';
   SET Environment.Variables.Output.msgtype = 'ZHRMKOR_O';
   SET Environment.Variables.Output.msgname = 'ZHRMKOR_O';
   SET Environment.Variables.Output.segname = 'z2hrmkor_o';

   -- properties & mqmd
   SET OutputRoot.Properties = InputRoot.Properties;
   SET OutputRoot.MQMD = InputRoot.MQMD;
   SET OutputRoot.MQMD.Format = MQFMT_RF_HEADER_2;
   -- RFH2 header
   SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = 2;
   SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = MQFMT_NONE;
   SET OutputRoot.MQRFH2.(MQRFH2.Field)Encoding = InputRoot.MQMD.Encoding;
   SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 1208;

   CREATE LASTCHILD OF OutputRoot AS domRef
      DOMAIN Environment.Variables.Output.msgdom
      NAME Environment.Variables.Output.msgdom;
   CREATE LASTCHILD OF domRef AS msgRef
      NAME Environment.Variables.Output.msgname;

   SET msgRef.z2hrmkor_o[] =
      (SELECT
         A.sdatatag.MRM.stell,       
         A.sdatatag.MRM.stltx         
      FROM InputRoot.IDOC.DD[] as A
      );

   -- Properties.Message[Set|Type|Format]
   SET OutputRoot.Properties.MessageSet = Environment.Variables.Output.msgset;
   SET OutputRoot.Properties.MessageType = Environment.Variables.Output.msgtype;
   SET OutputRoot.Properties.MessageFormat = Environment.Variables.Output.msgfmt;

    return true;

   END;

END MODULE;


- Trace output (Root & Environment):
Code:
--- 2006-12-13 17:23:04.057016 ---
(
  (0x01000000):Properties = (
    (0x03000000):MessageSet      = 'DOJU7DC0AM001'
    (0x03000000):MessageType     = 'ZHRMKOR_O'
    (0x03000000):MessageFormat   = 'TDS'
    (0x03000000):Encoding        = 273
    (0x03000000):CodedCharSetId  = 819
    (0x03000000):Transactional   = TRUE
    (0x03000000):Persistence     = TRUE
    (0x03000000):CreationTime    = GMTTIMESTAMP '2004-03-26 08:58:30.870'
    (0x03000000):ExpirationTime  = -1
    (0x03000000):Priority        = 0
    (0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
    (0x03000000):ReplyProtocol   = 'MQ'
    (0x03000000):Topic           = NULL
  )
  (0x01000000):MQMD       = (
    (0x03000000):SourceQueue      = 'TEST_TNT_1'
    (0x03000000):Transactional    = TRUE
    (0x03000000):Encoding         = 273
    (0x03000000):CodedCharSetId   = 819
    (0x03000000):Format           = 'MQHRF2'
    (0x03000000):Version          = 2
    (0x03000000):Report           = 0
    (0x03000000):MsgType          = 8
    (0x03000000):Expiry           = -1
    (0x03000000):Feedback         = 0
    (0x03000000):Priority         = 0
    (0x03000000):Persistence      = 1
    (0x03000000):MsgId            = X'414d5120534d51444556202020202020402b702d2055023f'
    (0x03000000):CorrelId         = X'000000000000000000000000000000000000000000000000'
    (0x03000000):BackoutCount     = 0
    (0x03000000):ReplyToQ         = '                                                '
    (0x03000000):ReplyToQMgr      = 'SMQDEV                                          '
    (0x03000000):UserIdentifier   = 'mqsi        '
    (0x03000000):AccountingToken  = X'0333303100000000000000000000000000000000000000000000000000000006'
    (0x03000000):ApplIdentityData = '                                '
    (0x03000000):PutApplType      = 6
    (0x03000000):PutApplName      = '                            '
    (0x03000000):PutDate          = DATE '2004-03-26'
    (0x03000000):PutTime          = GMTTIME '08:58:30.870'
    (0x03000000):ApplOriginData   = '    '
    (0x03000000):GroupId          = X'000000000000000000000000000000000000000000000000'
    (0x03000000):MsgSeqNumber     = 1
    (0x03000000):Offset           = 0
    (0x03000000):MsgFlags         = 0
    (0x03000000):OriginalLength   = -1
  )
  (0x01000000):MQRFH2     = (
    (0x03000000):Version        = 2
    (0x03000000):Format         = '        '
    (0x03000000):Encoding       = 273
    (0x03000000):NameValueCCSID = 1208
    (0x01000000):usr            =
    (0x01000000):mcd            = (
      (0x01000000):Msd  = (
        (0x02000000): = 'mrm'
      )
      (0x01000000):Set  = (
        (0x02000000): = 'DOJU7DC0AM001'
      )
      (0x01000000):Type = (
        (0x02000000): = 'ZHRMKOR_O'
      )
      (0x01000000):Fmt  = (
        (0x02000000): = 'TDS'
      )
    )
  )
  (0x01000021):MRM        = (
    (0x01000000):ZHRMKOR_O = (
      (0x01000000):z2hrmkor_o = (
        (0x0300000B):stell = '02003026'
        (0x0300000B):stltx = 'regressziós mtárs 1      '
      )
      (0x01000000):z2hrmkor_o = (
        (0x0300000B):stell = '02003027'
        (0x0300000B):stltx = 'regressziós mtárs 2      '
      )
      ...
    )
  )
)
(
  (0x01000000):Variables = (
    (0x01000000):Output = (
      (0x03000000):msgdom  = 'MRM'
      (0x03000000):msgset  = 'DOJU7DC0AM001'
      (0x03000000):msgfmt  = 'TDS'
      (0x03000000):msgtype = 'ZHRMKOR_O'
      (0x03000000):msgname = 'ZHRMKOR_O'
      (0x03000000):segname = 'z2hrmkor_o'
    )
  )
)

Back to top
View user's profile Send private message
jefflowrey
PostPosted: Thu Dec 14, 2006 5:22 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

It didn't ever work in test, but you put it in production anyway?

And when you upgraded production, it started mirroring what was happening in test?

It's entirely possible for an empty message to be produced as you say, and without any errors or warnings if that is what your code has instructed broker to do.

It's probably that what you have instructed broker to do is create your MRM tree but not associated with the MRM parser. Or you are instructing it to output the wrong things. Or the output tree is not quite where you think it is.

Looking at your trace output, and comparing with http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.etools.mft.fp8.doc/as08560_.htm
I would say that your MRM tree is not associated with the right MRM parser.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
Tibor
PostPosted: Thu Dec 14, 2006 6:27 am    Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

jefflowrey wrote:
It didn't ever work in test, but you put it in production anyway?

Once upon a time there was a huge, very complicated but well functioning message flow. After CSD08 it resulted empty output: messages and retained publications. Then I created a simple message flow only for test purpose.

jefflowrey wrote:
And when you upgraded production, it started mirroring what was happening in test?

We didn't upgraded the production because of this error.

jefflowrey wrote:
...It's probably that what you have instructed broker to do is create your MRM tree but not associated with the MRM parser...

I think same, BUT what would be the difference between the CSD06 and CSD08? An earlier version can create the byte stream from the message tree For proper parsing it was used the CREATE LASTCHILD ... DOMAIN 'MRM' command in the Compute Node...
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Thu Dec 14, 2006 6:53 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

I'd say the difference between CSD6 and CSD8 is that they fixed the bug that allowed CSD6 to do the wrong thing, and make assumptions about childred of Root named 'MRM'.

But that's just a guess.

You could look at the fixes made in CSD7 and CSD8 and see if any of them talk about fixing issues related to MRM trees.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
Tibor
PostPosted: Thu Dec 14, 2006 7:10 am    Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

Perhaps these flows are wrong but its works since v2.1!!! I'm going to look round on the support site
Back to top
View user's profile Send private message
Tibor
PostPosted: Fri Dec 15, 2006 4:42 am    Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

After a lot of trying I got a desired output message (original code is commented):
Code:
--   CREATE LASTCHILD OF OutputRoot AS domRef
--      DOMAIN Environment.Variables.Output.msgdom
--      NAME Environment.Variables.Output.msgdom;
--   CREATE LASTCHILD OF domRef AS msgRef
--      NAME Environment.Variables.Output.msgname;
--
   CREATE LASTCHILD OF OutputRoot as msgRef
      DOMAIN 'MRM'
      NAME 'MRM';

   SET msgRef.z2hrmkor_o[] =
      (SELECT
         A.sdatatag.MRM.stell,       
         A.sdatatag.MRM.stltx         
      FROM InputRoot.IDOC.DD[] as A
      );


The older version of ESQL followed the hierarchy of message set:
1st level: MRM
2nd level: name of the message
3rd level: name of the repeating type
etc.

However, this is a snippet of the general batch processing flow and I don't know why I should change it becuase of upgrading. This function is mandatory here and I'm afraid of other hidden side-effects.

Up to now there wasn't any problems with CSDs, moreover the upgrading from v2.1 to v5.0 was fluent, too.
Back to top
View user's profile Send private message
Tibor
PostPosted: Thu Jan 04, 2007 8:29 am    Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

hmmm
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 » empty output messages after ugrading CSD08
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.