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 » IIB MQGET node correlation ID issue

Post new topic  Reply to topic
 IIB MQGET node correlation ID issue « View previous topic :: View next topic » 
Author Message
Jumani
PostPosted: Wed Aug 10, 2022 7:54 am    Post subject: IIB MQGET node correlation ID issue Reply with quote

Newbie

Joined: 25 Jul 2022
Posts: 7

Hi,

I have a requirement where source system passes an ID which is greater than 24 character and this needs to be passed as correlation id for MQGET node. Trying to pass through following esql expression but receive exception:



The length must be correct



Code:

   
   set OutputRoot.MQMD.CorrelId = CAST(ID AS BLOB CCSID 1208 ENCODING 546 );
   set OutputRoot.MQMD.MsgId =  CAST(ID AS BLOB CCSID 1208 ENCODING 546 );



Please help to resolve, thanks.
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Wed Aug 10, 2022 2:58 pm    Post subject: Reply with quote

Jedi

Joined: 25 Mar 2003
Posts: 2491
Location: Melbourne, Australia

MsgId and Correlid are exactly 24 bytes of binary data, no more, no less.
If you need to set the values, they must be padded (eg. spaces or nulls on end) or truncated to 24 bytes.
If the required ID is greater than 24 characters, you can remove redundant or constant information, or use compression techniques to reduce it to 24 binary bytes.

If the apps are not doing get by MsgId or CorrelId, consider using message properties, or include the value in the data payload of the message.
_________________
Glenn
Back to top
View user's profile Send private message
Jumani
PostPosted: Thu Aug 11, 2022 11:54 pm    Post subject: IIB MQGET node correlation ID issue Reply with quote

Newbie

Joined: 25 Jul 2022
Posts: 7

Hi,

Thanks for the reply. Just want to know how MQGET node accepts id generated from MQOUTPUT($LocalEnvironment/WrittenDestination/MQ/DestinationData/msgId) node which is also greater than 24. Can we generate it from esql using expression as well or not. Thanks in advance
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Aug 12, 2022 7:14 pm    Post subject: Re: IIB MQGET node correlation ID issue Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20695
Location: LI,NY

Jumani wrote:
Hi,

Thanks for the reply. Just want to know how MQGET node accepts id generated from MQOUTPUT($LocalEnvironment/WrittenDestination/MQ/DestinationData/msgId) node which is also greater than 24. Can we generate it from esql using expression as well or not. Thanks in advance

It's not greater than 24 bytes. It's just the hex representation of the 24 bytes which gives you 48 characters...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
AH270751
PostPosted: Wed Aug 17, 2022 4:08 am    Post subject: Reply with quote

Newbie

Joined: 03 Jul 2019
Posts: 3

MQInput --> Compute -->MQReply -->MQGet --> MQOutput

Sample CorrelId: 3030304d5700000000000000000008791659599841109023

Provide this Code in Compute Node:
SET OutputRoot.Properties.ReplyIdentifier = InputRoot.MQMD.MsgId;
SET OutputRoot.MQMD.MsgId = InputRoot.MQMD.MsgId;
SET OutputRoot.MQMD.CorrelId = InputRoot.MQMD.MsgId;
SET OutputRoot.MQMD.ReplyToQ = 'OUT';

MQGet Node : Select Get by CorrelationlId
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Wed Aug 17, 2022 3:28 pm    Post subject: Reply with quote

Jedi

Joined: 25 Mar 2003
Posts: 2491
Location: Melbourne, Australia

AH270751 wrote:
MQInput --> Compute -->MQReply -->MQGet --> MQOutput
Sample CorrelId: 3030304d5700000000000000000008791659599841109023
Provide this Code in Compute Node:
SET OutputRoot.Properties.ReplyIdentifier = InputRoot.MQMD.MsgId;
SET OutputRoot.MQMD.MsgId = InputRoot.MQMD.MsgId;
SET OutputRoot.MQMD.CorrelId = InputRoot.MQMD.MsgId;
SET OutputRoot.MQMD.ReplyToQ = 'OUT';
MQGet Node : Select Get by CorrelationlId


"SET OutputRoot.MQMD.MsgId = InputRoot.MQMD.MsgId;"
AFAIK, this is not necessary. MQ will generate a new unique MsgId when the output msg is Put, and MsgId is not used for selection by Get.
_________________
Glenn
Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Aug 26, 2022 8:42 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9392
Location: US: west coast, almost. Otherwise, enroute.

gbaddeley wrote:
... and MsgId is not used for selection by Get.

Supported:
MQMO_MATCH_MSG_ID
MQMO_MATCH_CORREL_ID
MQMO_MATCH_GROUP_ID
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
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 » IIB MQGET node correlation ID issue
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.