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 » MRM to XML Processing Time

Post new topic  Reply to topic
 MRM to XML Processing Time « View previous topic :: View next topic » 
Author Message
surenat
PostPosted: Wed Sep 25, 2002 7:49 am    Post subject: MRM to XML Processing Time Reply with quote

Apprentice

Joined: 01 Jan 2002
Posts: 32

Hi,
I have flow which tranform comma-delimited(MRM) to XML. Input comma delimited message size is 600k. Inside this message there is compund elements which repeats around 20,000 times. The following is the code i am using in tranformation compute node.
Code:

WHILE sec_count <= CARDINALITY(InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[]) DO

   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."lendSec"."secId" = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count].lendSec_e."secId";
   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."lendSec"."secIdType".(XML.attr)value = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count].lendSec_e."secIdType";
   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."unitQty" = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count]."unitQty";
   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."undisclQty" = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count]."undisclQty";
   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."orderExpDate" = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count]."orderExpDate";
   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."dividendRate" = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count]."dividendRate";
   
   SET sec_count = sec_count + 1;
END WHILE;


To process this tranformation it is taking 8 minutes time. Is there any tway o make this transformation in less time.(20-60 secs).


Thanks for your help!!
Suresh
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
kirani
PostPosted: Wed Sep 25, 2002 8:21 am    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

Suresh,

You will get very low performance if using MRM-TDS/F as input messages. So try to use MRM-CWF and see how it makes differece. I also see that CARDINALITY function is called each time you enter the loop (i.e. 20,000 times). Move this function out of the loop and then measure your time. Your code will look like this:

Code:

DECLARE TOT_CNT INTEGER;
SET TOT_CNT = CARDINALITY(InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[]);

WHILE ( sec_count <= TOT_CNT ) DO
   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."lendSec"."secId" = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count].lendSec_e."secId";
   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."lendSec"."secIdType".(XML.attr)value = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count].lendSec_e."secIdType";
   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."unitQty" = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count]."unitQty";
   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."undisclQty" = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count]."undisclQty";
   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."orderExpDate" = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count]."orderExpDate";
   SET "OutputRoot"."XML"."EQL_Message"."EQL_Body"."availability"."securities".security[sec_count]."dividendRate" = InputRoot.MRM."availabilityPost.Post_Sub_Msg_e".security_e[sec_count]."dividendRate";
   
   SET sec_count = sec_count + 1;
END WHILE;


Let us know how much time this takes.
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
surenat
PostPosted: Wed Sep 25, 2002 8:51 am    Post subject: Reply with quote

Apprentice

Joined: 01 Jan 2002
Posts: 32

Kiran:

I have I tried moving cardinality function out of the loop & using MRM-CWF , still I do not see any improvement in performance. Please post any ideas i can try on.

-Thanks
Suresh
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » MRM to XML Processing Time
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.