Equivalent of TAO's buffered twoway?

in Help Center
The Event Distribution Performance comparision includes a comparison
of Ice's batchOneway and TAO's buffered twoway. Unfortunately,
batchOneway, like simple oneway, does not seem to guarantee delivery
order under stress. Is there a way to get ordered delivery with the
performance gain implied by batching/buffering?
of Ice's batchOneway and TAO's buffered twoway. Unfortunately,
batchOneway, like simple oneway, does not seem to guarantee delivery
order under stress. Is there a way to get ordered delivery with the
performance gain implied by batching/buffering?
0
Comments
If you have a commercial need for this please contact [email protected].
if we want ordered batched delivery of events (effectively writing our own IceStorm
replacement) or attaching a sequence id to events through IceStorm so the
subscriber can defer internal delivery of items that have a too-high sequence id,
in hopes that the lower ones will show up soon?
Thanks!
void sendTelescopeUpdate(Position pos);
then you could instead have
sequence<Position> PositionSeq;
void sendTelescopeUpdate(PositionSeq pos);
I realize that this is some additional burden on the application, and therefore might not be ideal. If this is a pain and you would rather have an IceStorm specific solution then I refer to my later suggestion
This is described in the Ice manual, section 30.11 "Oneway invocations" (and this applies for batch oneways as well). In short, you need to configure the thread pool of your subscriber to only have one thread (or use a dedicated object adapter with a thread pool of one thread for your subscriber object). You have the guarantee that your batch of oneway requests won't be re-ordered if there's only one thread to read the incoming batchs over the connection.
Let us know if you need more information!
Benoit.
http://www.zeroc.com/faq/onewaysOutOfOrder.html