GenericParallel will take every Request entry and execute them in parallel by calling the business service at path Datagrid/Biz/Restful, setting relativeURI to register-resource-id, HTTP method to PUT and body to anything that is under Request – UUID in this case.

Then it will collect the responses and return them back as a list in the same order as they were sent out:

GenericParallelSelfTest/REST/RestBackendService.ProxyService is a self-test service which is not required for normal operations. It is only needed if you want to run GenericParallel SoapUI tests. If it is the case, then you need to deploy SelfTest JAR project from the distribution.

I am facing some issue while enqueueing to multiple AQs. The GPSFailMode is ANY_REQUEST_FAILS. The scenario is, when i am trying to enqueue to 5 AQs, and if it fails on any one of the queue, the other queues are getting the messages successfully. The transaction is not getting rolled back.

My understanding you want to place messages into 5 queues, and if any of them fail, you plan to rollback the transaction so none of the messages go out?

OK, I did not plan for such a use. GenericParallel code is using BestEffort inside of the split-join, so even if you have a transaction in progress, GPS is outside of it.

I see two solutions for you:

1. Do not use a parallel call. Placing into a queue is usually a very fast operation, so you can do all 5 sequentially without a performance impact. Do it within a OSB proxy with transaction, and you’ll have either 5 or 0 messages sent.
2. Update GPS code to use Exactly Once in Invoke Service steps. I did not test that, but, according to Oracle documentation, that is enough to propagate the transaction via Split-Join… hmm… you’d have to make other GPS proxies transactional, too.