jms transport: Handling client restart in async request / reply case
--------------------------------------------------------------------
Key: CXF-1933
URL: https://issues.apache.org/jira/browse/CXF-1933
Project: CXF
Issue Type: New Feature
Components: Transports
Affects Versions: 2.1.3
Reporter: Christian Schneider
Fix For: 2.1.4
Imagine the following scenario:
- Client sends request (e.g. to create an object on the server db). It expects
the reply on a reply queue
- Client goes down and is restarted
- Server creates the object and returns success and an identifier for the object
- Client receives the reply but discards it as it has no matching corraltion id
=> So the information gets lost. I this case this is bad as the client can not
just retry the operation
I could imaginge the following solution:
- Client is compiled with an async front end. So it listens for replies on a
handler method
- The client sends the reuest with reply to set to a permanent reply queue
(temp queue would not make sense here)
- Client goes down and is restarted
- Server creates the object and returns success and an identifier for the object
- Client receives the reply. The correlation matching is turned off and the
client correctly handles the reply
=> Information will never be lost (at least if combined with jms transactions)
Another advantage of this approach is that a reply can be handled by another
instance of the client.
So what I think has to be done:
- Add a config setting to turn on or off correltation matching
- Check if an uncorrelated reply can be handled by the other parts of CXF. Does
someone know if this should work?
So what do you think?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.