You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Christian Schneider (JIRA)" <ji...@apache.org> on 2008/12/06 11:19:44 UTC

[jira] Created: (CXF-1933) jms transport: Handling client restart in async request / reply case

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.


[jira] Updated: (CXF-1933) jms transport: Handling client restart in async request / reply case

Posted by "Christian Schneider (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1933?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christian Schneider updated CXF-1933:
-------------------------------------

    Fix Version/s:     (was: 2.1.4)
                   2.2

> 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.2
>
>
> 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.


[jira] Commented: (CXF-1933) jms transport: Handling client restart in async request / reply case

Posted by "Christian Schneider (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1933?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12654049#action_12654049 ] 

Christian Schneider commented on CXF-1933:
------------------------------------------

Forgot to add the link to the mailing list where the problem came up:
http://www.nabble.com/jms-client-restart-td20853766.html

> 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.