This content has been marked as final. Show 6 replies
with UOO you will require to make the transaction syschronous.
1. Make transacation XA enable
2. using Route for the sychrounous transaction
3. use routing options and select mode = request-respone
4. if Proxy service is jms based then you should also set JMS Transport -> Advance settings -> is XA required ->checked
Do you have to set request-response in the route even if it's a one-way message flow? i.e., you have to make it a two way flow to get in-order delivery? Would this also work inside a route table? The use case is here that the sender in site A establishes the unit of order, and the ESB routes each message to N other sites propagating the UOO by copying all the headers.
Edited by: SteveElkind on Apr 28, 2011 7:48 AM
I don't know what you need UOO for, but, for some use cases, its sufficient just to configure a default UOO on the sender's connection factory.
Propapagation of a UOO from one desitnation to another is not automatic (except via SAF, or unless OSB somehow does it for you). Plain vanilla JMS apps do this by calling msg.getStringProperty("JMS_BEA_UnitOfOrder") on the received message and setUnitOfOrder() on the javax.jms.WLProducer.
You might find that there's more OSB expertise on an OSB newsgroup (I think it's one of the newsgroups under [url http://forums.oracle.com/forums/category.jspa?categoryID=194]SOA & Process Management).
We've been told by the local Oracle team that since OSB can propagate all headers that was sufficient to propagate UOO. AFAIK there is no built-in capability in OSB to call setUnitOfOrder(). I'll follow up with them on that further.
The ConnectionFactory option may be impractical - we will probably have 1000's of units of orders (or even essentially unlimited by needing date-specific UOOs). Can UOO be engaged by setting a message property using the standard JMS API?
AFAIK there is no built-in capability in OSB to call setUnitOfOrder().You can use a transport header action to set the Unit of order. If you want to just propagate the unit of order from one jms queue to another, make sure you have a transport header action with Pass All Headers through pipeline checked.