I am currently using a virtual service to send batches of messages to another service, i have found that without tweaking think times on the virtual service the batches seem to overlap which causes issues for the service that is receiving these messages.
Increasing the concurrent capacity for that VSM might help.
Please, take a look at concurrent capacity documentation in the link below:
Deploy Virtual Services - DevTest Solutions - 9.5 - CA Technologies Documentation
Hope it helps,
Did Heloisa's recommendations help you out with this issue?
If Heloisa's suggestion above does not work for you, can you add a bit more information to your question?
For example, when you say a Virtual Service is "sending batches of messages" to another service, please elaborate more:
1) What protocol are you using (JMS, HTTP, TCP, etc.) within the virtual service that is sending the batch of messages?
2) What protocol are you using to send the batch of messages?
3) Is the service that sends the batch of messages coded as a fire-and-forget (i.e., no Responder step) or is a response required for each transaction (i.e., Responder step included in the model)?
4) Can the System Under Test (SUT) invoke the service that is sending the batch of messages a second, third, fourth, etc. time prior to receiving the response from the first transaction?
5) What architecture are you using when sending the batch of messages? (A. Batch of messages sent prior to the service's responder step vs. B. Service 1 responds out of responder step then steps to send batch of messages are executed)
My understanding is that a virtual service running in a VSE (not ITR mode) is not technically single threaded even if the capacity is set to 1. For functional VSEs, service throughput is 'throttled' on the response side of the transaction and takes into account things such as the think times associated with a given response(s).