Service Virtualization

Expand all | Collapse all

How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

  • 1.  How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

    Posted Sep 14, 2017 10:33 AM

    Hello Kevin,

     

    Again need your urgent help. I am getting one scenario in which we have to send two responses to two different queues. I am using response meta data. here reply to qmanager coming from request header. We are using {{lisa.vse.mq.replyto.qmanager.respond}}  this ins respond step but it is value is not getting understood by Lisa when we are doing disregardReplyto = true and due to we are getting MQ exception. But when we are making this disregardReplyto  = false then we are getting both responses to same queue.

     

    It killed our full day as we tried each and every thing. Please assist us how we can set rely to queuemanager or reply to queue coming in request header in meta data properties.

     

    Please assist.

     

    Cheers..

    Shivam Garg



  • 2.  Re: How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

    Posted Sep 14, 2017 12:16 PM

    > We are using {{lisa.vse.mq.replyto.qmanager.respond}}  this ins respond step but it is value is not getting understood by Lisa 

     

    Is that a property that is being set?  Is just setting 'msg.replyToQueueName' in the VSI response meta-data not sufficient?  The version of LISA you are using is very old; I don't clearly remember how it all works.

     

     

    > when we are doing disregardReplyto = true and due to we are getting MQ exception. 

     

    What is the exception you are getting?  If you are getting an exception then tell us what it is, including the full stack trace.  That's why it's there.



  • 3.  Re: How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

    Posted Sep 14, 2017 10:28 PM

    Hello Kevin,

     

    > We are using {{lisa.vse.mq.replyto.qmanager.respond}}  this ins respond step but it is value is not getting understood by Lisa

     

    Yes I need this property value to be set in Response meta data. I have tried using msg.replyToQueueName and msg.replyToQueueManager , but it is not working. As here queue manager we are harcoding which is not working. We have to get value here what ever is coming in {{lisa.vse.mq.replyto.qmanager.respond}} in respond section.

     

     

    > when we are doing disregardReplyto = true and due to we are getting MQ exception.

     

    We are getting 2086 MQ exception. We have checked with LBG MQ team , they are saying that it is happening because lisa is not able to recognize relyToQueueManager coming in request i.e. in {{lisa.vse.mq.replyto.qmanager.respond}} parameter.

     

    If we can find some way to set this parameter value in one of the field in response meta data then porblem can be sorted out.

     

    Please advise further.

     

    Cheers..

    Shivam Garg



  • 4.  Re: How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

    Posted Sep 15, 2017 04:26 AM

    Also Kevin,

     

    Also can you tell me, how we can achieve this requirement in latest version 10.1?

     

    I am using + option in Respond step to add new reply queue but it is giving channel name can not be same while for my case both reply queues having same channel name.

     

    Also response meta data properties that I am able to see in old version , not able to see in latest version.

     

    Please advise.

     

    Cheers..

     

    Shivam Garg



  • 5.  Re: How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data
    Best Answer

    Posted Sep 15, 2017 03:54 PM

    We're probably at the point where I would have to tell you to go to actual support, but I'm pretty sure support is going to tell you that 7.5.2 is no longer supported.

     

    If you want to try 10.1 and the newer 'IBM MQ Native' protocol then I can try to help with that.

     

    First, let me make sure I understand your scenario, because I think I might be getting confused.

     

    1. Receive a request on Request Queue, this request specifies a replyTo queue, but this replyTo queue is not actually used anywhere in the responses.

    2. Send one response to Response Queue 1, ignoring the replyTo queue specified by the request.

    3. Send a second response to Response Queue 2, ignoring the replyTo queue specified by the request.

     

    Is that it?  I feel like there's something I'm missing given how many issues you've been having.

     

    You can set this up in 10.1 by adding a "channel" to the Respond step. 

     

    Note that this is a DevTest concept, and is *not related* to an IBM MQ server channel.  In DevTest, a "channel" is just how a proxy queue and it's corresponding live queue are grouped together.  A VSE recorder, or a VSE service running in pass-through mode, listens on the proxy side of a request channel and forwards requests to live side  On the response side, it listens on the live response side of a response channel and forwards responses to the proxy side.  I'd encourage you to read the documentation, which includes a diagram of what we mean by "Channel".

     

    If you are not doing recording, and not doing pass-through, then the "Live" side of each channel is optional.  The service just listens on the proxy side of a request channel and response to the proxy side of a response channel.

     

    With this kind of channel in mind, you have to give each channel a different name so they can be differentiated.  The name can be whatever you want; it's just a way to identify the channel.  Like this:

     

    Note that there is also an 'Ignore ReplyTo' option under each channel.  You can tell the respond step to ignore the original request's replyTo on a per-channel basis.  The 'disregardReplyTo' response meta-data property still works, but that disables replyTo on an individual response basis.  The options in the Respond step apply globally to all responses sent over that channel.

     

    The last thing you need is to tell DevTest which response channel to use for sending each response.  This is done with a single meta-data property in each VSI response:

    And the second response:

    The 'channel.name' meta-data property must match the name of a channel given in the Respond step.  With the IBM MQ Native protocol this is the only thing that matters when determining where to send the response.  The rest of the connection and queue meta-data, if present, is purely for informational purposes.

     

    If you are doing a recording, then you set up your multiple response channels in the recorder and the rest of this is automatically done for you.  If you are building from RR pairs or from scratch then you have to make sure 'channel.name' is set correctly yourself, either with RR pair sidecar files or by editing the VSI manually.



  • 6.  Re: How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

    Posted Sep 16, 2017 01:25 AM

    Dear Kevin.

     

    Thanks for your reply.

     

    I am totally agree with you as this version is out of support. And want to tell you we are working on up gradation of this in organization with help of Steven Howe. Hopefully it will upgrade soon. But as we are working in banking area so considering emergency asking some solution in 7.5.2. Yesterday I raised once support case as well and David Woodman is looking into that.

     

    I tried this way in latest version, but problem is coming when we have same channel name for both response queues then in VSM we are getting validation error as both channel name can not be same. Also you understand the scenario correctly. I don't want to consider reply to queue what is coming in request but I want to consider reply to queue manager. 

     

    This reply to queue manager I want to send in first response meta data with 'disregardReplyTo=True'. Also as I said in another thread, when I am adding this property and making value True in second response meta data, then it is not considering values(dest properties) that we have hardcoded in meta data. It is picking reply to queue manager value that we have given in first response or hard coded in response step in VSM.

     

    It is doubting if Lisa 7.5.2 behaving some differently.

     

    I know in one thread you mentioned that if we are making 'disregardReplyTo=True' then it will hard coded dest* properties instead of what is coming from VSM but it is not happening.

     

    So looking forward for your help in this case.

     

    Cheers..

     

    Shivam Garg



  • 7.  Re: How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

    Posted Sep 16, 2017 05:17 AM

    > I tried this way in latest version, but problem is coming when we have same channel name for both response queues then in VSM we are getting validation error as both channel name can not be same. 

     

    Again, the 'Channel Name' field you see in at the top level of the 'Respond' step is *not* the MQ connection channel.  As I explained earlier, this is our own DevTest concept of a "channel" and has nothing to do with MQ configuration. 

     - Your MQ connection channel for your two response queues can be the same thing.  It's defined in the MQ Connection asset that your Queue assets use. 

     - However, the 'Channel Name' fields in the Respond Step, which I highlighted earlier, are just identifying names that are assigned to your response queues.  These have to be unique and have to match the 'channel.name' properties in your VSI meta-data.  This is the "channel name" that the validation error is referring to, not your MQ connection channel name.

     

    Is this clear?  I don't know how to explain this any more clearly.  There are two pieces of data called "channel", and they have different purposes.

     

     

    > Also you understand the scenario correctly. I don't want to consider reply to queue what is coming in request but I want to consider reply to queue manager. 

     

    Okay, so I did *not* understand the scenario.  Are you trying to say that the *name* of the response queue is determined by the service, but the *queue manager* of the response queue is given by the client's request?  Does this mean that the two response queues that the service needs to use could be on different queue managers from request to request?

     

    "ReplyTo Queue Manager Name" is usually considered *together* with "replyTo Queue Name".  They both tell half of the information about where to send the response, and settings like 'disregardReplyTo' and 'Ignore ReplyTo' apply to *both* of them.

     

    There are ways to break them apart; to get the replyTo Queue Name from a different place than the replyTo Queue Manager name.  But this is not how things work out of the box.

     

    Doing this in 10.1 is tricky but not that difficult.  Simply unchecking 'quiet' on the Request step will extract the replyTo Queue Manager Name from the request into a testExec property.  Then you can reference this property from your response queue assets' 'Override Queue Manager' parameter.

     

    Doing the same thing in 7.5.2 is harder.  The only way I can think of to extract the request's ReplyTo Queue Manager is with a script step.



  • 8.  Re: How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

    Posted Sep 17, 2017 03:59 AM

    Thanks Kevin for reply.

     

    First point is clear to me.

     

    Second point , I will clear more with the example we want to achieve.

     

    There are 2 responses. One response should go to Reply to queue A & Reply to queue manager B. Second response should go to Reply to queue C & Reply to queue manager D. Request is coming with Reply to queue manager B in message header.

     

    First Scenario:

    Now If I am keeping "disregardReplyTo=false" in both responses meta data then both responses going to same reply queue A and reply to queue manager B which not completing testing flow.

     

    Second Scenario:

    Other side, If I am keeping "disregardReplyTo=true" with hard coded reply to queue A and reply to queue manager B in first response meta data & reply to queue C and Reply to queue manager D in second response meta data , then both responses going to different different reply to queues but same reply to queue managers. We are not understanding why this is happening in second scenario (why same queue managers).

     

    Again as per yous statement long back, if we are making "disregardReplyTo=true" then it should ignore what ever reply to queue and reply to QM is coming in message, these values should be override by values given in responses meta data. Is not it?

     

    If we can sort out this, then we can achieve the success without writing any scripts or any thing else. Hoe with the real example that we wan to achieve make it more clear to you.

     

    Cheers..

    Shivam Garg



  • 9.  Re: How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

    Posted Sep 18, 2017 06:41 PM

    I have verified that 'disregardReplyTo' applies to both replyTo Queue and replyTo Queue Manager in 10.1 with IBM MQ Native protocol, and in 9.5.1 with the old IBM MQ Series protocol.

     

    I tried pretty hard to get 7.5.2 working, but I no longer have working licenses for anything that old.  I can't tell you if any bugs were fixed in this specific feature between 7.5.2 and 9.5.1.



  • 10.  Re: How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

    Posted Sep 18, 2017 10:19 PM

    ok Great. I will try in 10.1. Can you let me know , how you tried in 10.1, I mean by you set up this property in response meta data or you simply used property IgnoreReplyTo in respond step in VSM.

     

    If you can share screen shot , that would be pretty much helpful here.

     

    Cheers..

    Shivam Garg



  • 11.  Re: How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

    Posted Sep 19, 2017 12:41 PM

    I tried both ways and they both work.  A screenshot of the Respond step option is above.



  • 12.  Re: How to get value of property value {{lisa.vse.mq.replyto.qmanager.respond}}  in Response meta data

    Posted Sep 19, 2017 10:25 PM

    Got it. I will try that and will confirm you back.