Just a thought about the process.. could we try inserting into AQ after the check Ack ? If Ack = success, insert into AQ, if it fails, dont insert.. That way, you don't have to deal rollbacks etc.. I assume the Ack is being sent as the confirmation of the msg being stored in AQ. If that is the case, then, above method would be a incorrect process, as we would sending ack before even storing the msg into AQ.
Thanks for your suggestion.
After receving the ack=sucess, before storing the Record in the AQ if system crashes Data would no longer exist in Either AQ or external web service Data base .
the Record shouldn't be lost at any cost.
in my case, if the system crashes before sending the data to AQ, nothing happens because i wouldn't send the ack to the External web service.