> 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.