Service Virtualization

 View Only
  • 1.  IBM MQ Native - how to respond to different queue?

    Broadcom Employee
    Posted Apr 08, 2016 03:49 AM

    Hi Experts,

     

    "IBM MQ Native" Transport protocol has been added in SV recently.

    Some stuff are improved from previous "IBM MQ Series(Deprecated)" so I wanted to recommend it rather than old one for customer.

    However, I could not find the way to realize that to distribute multiple responses toward different queue on the new functionality.

    It is significant requirement for my customer.

    Does anyone know how to configure it?

     

    Detail:

    Three queues are defined on IBM MQ v8. (Q.REQ and Q.RES and Q.RES2)

    VSE get request from Q.REQ and then respond to Q.RES or Q.RES2.

    VSI contains one transaction which has two responses. first response should be responded to Q.RES and second response should be responded to Q.RES2.

    It worked well under previous "IBM MQ Series(Deprecated)" because, in VSI Editor Response pane, each response's "meta-data/dest.destination" can define each own different destination queue.

     

    On the other hand, in case of "IBM MQ Native", I also defined different response queue for each response by using the same way "dest.destination"  but, unfortunately, this definition seems to be ignored and eventually all responses responded to Q.RES where are defined in asset.

     

    Regards,

     

    Hirofumi Nishino | CA Technologies Japan



  • 2.  Re: IBM MQ Native - how to respond to different queue?
    Best Answer

    Posted Apr 08, 2016 12:35 PM

    The IBM MQ Native protocol absolutely does support multiple response queues. How are you building your Virtual Service?

    If you're going through the recorder, then you can add another response channel with the '+' button under the Response section:

    Screen Shot 2016-04-08 at 11.18.53 AM.png

     

    Enter a name for the second response channel and select your proxy and live response queues:

    Screen Shot 2016-04-08 at 4.50.15 AM.png

     

    If you're doing things a little more manually then you can add another response channel in the VSMs Respond step, basically the same way with a '+' button:

    Screen Shot 2016-04-08 at 11.17.01 AM.png

     

    Enter a channel name and select your response queue:

    Screen Shot 2016-04-08 at 11.16.40 AM.png

     

    The 'Channel Name' I keep mentioning is how you associate a particular response in your VSI with a response queue in your VSM.  You should find a 'channel.name' meta-data property on each VSI Response, the value of which must exactly match the name of a response channel defined in the VSM Respond step:

    Screen Shot 2016-04-08 at 11.26.32 AM.png

     

    That is the only meta-data property you need in your VSI to tell the VSM which response queue to use.  If you do a full recording then you will see all the queue info and connection appear in the VSI meta-data.  But with the new IBM MQ Native protocol that's all purely for historical information purposes.  The only meta-data properties that matter at playback time are the msg.* properties and channel.name.

     

    If you're building your service with RR pairs then by default the recorder will assign all of your responses to the first response channel.  I think you can override this by using sidecar files that provide their own channel.name property, but I haven't actually tested that.



  • 3.  Re: IBM MQ Native - how to respond to different queue?

    Broadcom Employee
    Posted Apr 09, 2016 06:52 AM

    Thanks a lot, Kevin. It perfectly worked!! I really appreciate to your advice!!

    I want to say the new "IBM MQ Native" functionality is super cool! One of the point is each responses' think time in VSI is reflected!

    Anyway, thanks again for your help!

     

    Regards,

    Hirofumi Nishino