Sridhar,
Assuming you are using JMS there is a JMS header property called "JMSXDeliveryCount" which contains the number of times the message has been redelivered. This contains mq "BackoutCount" which can be used to set the redelivery limit.
Also the way we have found around is when the messages rollback due to XA errors put them in a suspend queue and reprocess them later when the resources are available.
In case you want to look up Java/Mq documentation use the following - Websphere MQ using
Java - csqzaw11.pdf
Hope it helps
Navjeet