"timfox" wrote : Messaging has no requirement to get acknowledgements that
messages have been delivered to the client side.
|
There may be no formal messaging requirement for acknowledgements, but it seems to derive
from the current implementation. Currently, messaging delivers messages from the server
to the client by the synchronous Remoting Client.invoke() method, and
ServerConsumerEndpoint.stop() waits for the completion of the call to invoke():
| this.executor.execute(new Deliverer());
| //Now wait for it to execute
| Future result = new Future();
| this.executor.execute(new Waiter(result));
| result.getResult();
|
Now, if you want to have the client side poll for messages, then the completion of the
Deliverer only means that the messages have been handed over to Remoting. My
understanding is that you want all messages that have left ServerConsumerEndpoint to be
delivered to MessageCallbackHandler before concluding ServerConsumerEndpoint.stop(), and
the only way I can see to get that information is to get an acknowledgement from the
client side. Let me know if I've misinterpreted something.
anonymous wrote :
| (The HTTP transport might use acknowledgments internally to manage it's buffer
-although I am not sure that is the best way to do it- but that's an implementation
detail of the HTTP transport).
|
My understanding is that this issue isn't specific to the HTTP transport.
Messaging's current use of the socket transport involves a callback Remoting Client on
the server side contacting a ServerSocket on the client side. I thought you wanted to
avoid the client side ServerSocket in all cases. Or does this restriction apply only to
the HTTP transport?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3974965#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...