Service Virtualization

Expand all | Collapse all

MQ - rr selecting response

Jump to Best Answer
  • 1.  MQ - rr selecting response

    Posted 07-28-2016 09:40 PM

    here is what we have done till now

    we have only MQ response. Both request and response are long string. request has particular location with fix length of char so that we (LISA) can find what is this request

    we have done simple thing by creating custom VSM which has listen, retrieve, java script and post.

    Listen - will listen on a particular queue

    Retrieve - where we retrieve the message and save it in a variable - ABC

    Javascript - whole logic is here request ABC variable parsed and identify the message and send response with variable XYZ

    Post - has XYZ. we just have simple if.....else for each message and corresponding response.

     

    this works fine but there is no transaction count on VSE. and it was adhoc approach.

     

    but now we want to implement this in VSM and VSI how do we do that?

    any suggestions ? something about scriptable data protocol ? how do we create VSI without request which generally we don't care?

    what is the use of messageID and coorelationID?



  • 2.  Re: MQ - rr selecting response
    Best Answer

    Posted 07-29-2016 02:08 AM

    > this works fine but there is no transaction count on VSE.

     

    Sometime in 8.x VSE stopped counting transactions for non VSI-driven VSMs.  You can work around this by adding the following line to your Script step:

     

    testExec.setStateObject("lisa.vse.stateful.request.received", Boolean.TRUE);

     

    > but now we want to implement this in VSM and VSI how do we do that?

    > any suggestions ? something about scriptable data protocol ? how do we create VSI without request which generally we don't care?

     

    Yes, if you want to build a VSI-driven service then you'll probably want to use a scriptable Data Protocol Handler.  Retrieving the message body is a little different, but then you can use the exact same script as your other service to pull out your fixed length request fragment.  Once you have that, you script can put it into the Request object as an Argument.

     

    Once you have that scripted data protocol handle, the easiest way to generate an actual VSM is probably using Request/Response pairs.  If the request doesn't matter then just make something up that will run through your scripted DPH and generate the correct argument.  Build one of those for each of your responses, put them into the correct RR pair directory format, and the recorder plus your scripted DPH should take care of the rest.  This can also serve as a test of your scripted DPH before trying to go live with it.

     

    It's also possible to build your own VSI and VSM from scratch, but I would recommend trying the RR pair route first.