On Wednesday 05 January 2011 4:05:23 pm Dennis Sosnoski wrote: > On the issue of messages being delivered in order to the service > provider (even one-way messages), that's my interpretation of the specs > based on their wording. They say that messages are to be delivered in > order (if that option is used) to the "Application Destination", defined > as " The endpoint to which a message is Delivered." Endpoint seems to me > to equate to the actual service provider code. And it does seem like the > in-order assurance would be pretty weak if this did not apply to the > actual application code. I realize it's difficult to do this with > asynchronous messages, though, basically requiring single-threading the > calls to the application. Is there a way of forcing single-threading of > providers with JAX-WS?
Not really. With CXF you can do it via a PooledFactory with a max size of 1. However, that really isn't what you want as you want it single threaded per sequence, not per "all interactions". Most likely, the RM runtime will need to be updated to record that the message was processed AFTER the invoker interceptor (and on application level faults). When a message comes in, if it's not the next in the sequence, reject it. OR, if continuations are enabled, you could create a continuation, pause everything, and come back to it when it would become the next in the sequence. -- Daniel Kulp [email protected] http://dankulp.com/blog
