I'm copying this from the Remoting forum in case nobody has a watch on it.
"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 org.jboss.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.
"timfox" 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
org.jboss.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=3975075#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...