Currently we are having some trouble in calling an outbound SALT service through a Tuxedo Queue. Our service is set up properly and all calls through tpcall, tpacall and tpforward works properly but, once we do a tpenqueue, we have the following error on the GWWS service:
GWWS_CAT:1357: ERROR: This call is transactional, but the service definition does not specify an ATAssertion element.
I've tried setting up the tpenqueue with the TPNOTRAN flag, but the error still persists.
What I suspect is that the TMQFORWARD service, responsible for consuming the messages, is calling the outbound service in a transactional manner, with no regard for my TPNOTRAN flag.
Can anyone help me in this? Is it necessary to declare an ATAssertion on the outbound service? I've been stuck in this for hours with no success.
TMQFORWARD normally starts a transaction, dequeues a message, calls a service, enqueues the reply, and then commits the transaction. If your external web service doesn't support WS-AtomicTransaction, then you should pass the "-n" option to TMQFORWARD so it doesn't start a transaction. Note that if you do this and there is a failure, the request may get lost, since TMQFORWARD will be pulling the message from the queue outside the scope of a transaction.
Oracle Tuxedo Chief Architect