you cound try these:
1、defined an topic，your three services have an jms-jca-provide gateway ref to the topic queue
2、defined three queue,and redefined their DQL using your fault queue:
<attribute name="DLQ">fault queue name</attribute>
hree services ref to these queue using jms-jca-provide not-gateway transports
that works fine only catch is I need to throw RuntimeException to roll the trx back and which I can do only from my custom action. What I found is "JcaMessageAwareListener" doesnt rollback by default on pipeline faults but "MessageAwareListener" does. so what I had to do is add a catch all Action at the very top - override the processException method and mark the trx rollback only if there is a pipeline fault which moves it to a specified DLQ in activation config. but Activation config has only 5 max resent - so I had to bump it up to whatever number I need - another glitch is if you have maxDelieveryAttempt sepcified in jbm-queue-service.xml on a queue - lesser no wins.